在设计数据契约类,并使用其做参数实现客户端与服务端数据交互的时候,编辑服务类,出现以下错误:
Error 1 Inconsistent accessibility: parameter type 'WCFService.UserDataContract' is less accessible than method 'WCFService.IWCFService.AddNewUser(WCFService.UserDataContract)' E:/CodesVs2008/WCFServiceDataContractFrankXuLei/WCFServiceFrankXuLei/WCFService/WCFService.cs 19 14 WCFService
其它类似错误信息:
Error 2 Inconsistent accessibility: return type 'WCFService.UserDataContract' is less accessible than method 'WCFService.IWCFService.GetUserByName(string)' E:/CodesVs2008/WCFServiceDataContractFrankXuLei/WCFServiceFrankXuLei/WCFService/WCFService.cs 22 26 WCFService
解决办法:
此错误是由于数据契约类的访问属性设置与服务契约访问属性不一致所致,服务契约接口的访问行为public,服务类也是public,而数据契约类没有生命对应的访问属性。
我们把数据契约类添加public关键字即可。示例代码如下:
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 ;
}
}
【老徐的博客】
【作者】:Frank Xu Lei
【地址】:http://www.cnblogs.com/frank_xl/archive/2009/04/14/1435782.html