Welcome

首页 / 软件开发 / WCF / WCF分布式开发常见错误解决(8):不一致的访问性Inconsistent accessibility

WCF分布式开发常见错误解决(8):不一致的访问性Inconsistent accessibility2011-03-31 博客园 Frank Xu Lei在设计数据契约类,并使用其做参数实现客户端与服务端数据交互的时候,编辑服务 类,出现以下错误:

Error 1 Inconsistent accessibility: parameter type "WCFService.UserDataContract" is less accessible than method "WCFService.IWCFService.AddNewUser(WCFService.UserDataContract)" E:CodesVs2008WCFServiceDataContractFrankXuLeiWCFServiceFrankXuLeiWCFServiceWCFService.cs 19 14 WCFService

其它类似错误信息:

Error 2 Inconsistent accessibility: return type "WCFService.UserDataContract" is less accessible than method "WCFService.IWCFService.GetUserByName(string)" E:CodesVs2008WCFServiceDataContractFrankXuLeiWCFServiceFrankXuLeiWCFServiceWCFService.cs 22 26 WCFService

解决办法:

此错误是由于数据契约类的访问属性设置与服务契约访问属性不一致所致,服务契约 接口的访问行为public,服务类也是public,而数据契约类没有生命对应的访问属性。

我们把数据契约类添加public关键字即可。示例代码如下:

[DataContract]//数据契约属性声明
public class UserDataContract
{
[DataMember(Name = "UserName")]//数据成员标记,支持别名定 义
public string Name
{
get;
set;
}

[DataMember(Name = "UserEmail")]//数据成员标记,支持别名定 义
public string Email
{
get;
set;
}
[DataMember]//数据成员标记
public string Mobile
{
get;
set;
}
//没有[DataMember]声明,不会被序列化
public string Address
{
get;
set;
}
}