我有这个数据契约:WCF数据契约问题
[DataContract(Namespace = Constants.ServiceNamespace)]
public enum UserEntityType
{
User = 0,
Group = 1,
IPAddress = 2
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(UserEntity))]
public class UserEntity
{
[DataMember]
public UserEntityType EntityType;
[DataMember]
public string Value;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
public class TemporaryPolicyData
{
[DataMember]
public DateTime EndTime;
[DataMember]
public string URL;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(TemporaryPolicyData))]
//[KnownType(typeof(UserEntity))]
public class TemporaryWhitelistData
{
[DataMember]
public UserEntity User;
[DataMember]
public TemporaryPolicyData Data;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(TemporaryWhitelistData))]
//[KnownType(typeof(UserEntity))]
public class WhitelistPolicyData
{
[DataMember]
public IEnumerable<TemporaryWhitelistData> TemporaryData;
[DataMember]
public IEnumerable<string> Websites;
[DataMember]
public IEnumerable<UserEntity> Users;
}
我得到这个错误:
An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll
Additional information: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d)
这似乎与上面定义的数据合同,因为如果我把它简化,它返回数据。
给出该错误的操作方法是:
[OperationContract]
WhitelistPolicyData GetWhitelistPolicy();
任何InnerExceptions?说*简单*,你的意思是什么? – Jan
内部异常显示“附加信息:从管道读取时发生错误:管道已结束。(109,0x6d)”。简化意味着我从白名单策略数据 字段中排除TemporaryData和Users – Ghita