在設計數據契約類,並使用其做參數實現客戶端與服務端數據交互的時候,編輯服務 類,出現以下錯誤:
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關鍵字即可。示例代碼如下:
[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;
}
}