我有這個數據契約: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