我正在设置WCF界面。我的数据合同如下:
[DataContract(Namespace = "wcf")]
[KnownType(typeof(TypeFromLibrary))]
public class MyClass
{
[DataMember]
public TypeFromLibrary myProp { get; set; }
}
是否可以像这样在DataContract中使用TypeFromLibrary
?我见过的所有例子都只使用int,string,double等作为属性类型。
注意:我在WCF的服务器端和客户端都有库的副本。
答案 0 :(得分:0)
我只是想发布对我有用的东西以防其他人遇到麻烦。
[DataContract(Namespace = "wcf", IsReference = true)]
public class NewType : TypeFromLibrary
{
public NewType(TypeFromLibrary baseObj)
{
//set all props here
}
public event EventHandler<SomeEventArgs> SomeEvent;
[OperationContract]
public string SomeBaseFunction()
{
}
[DataMember]
public CustomBaseProp SomeProp { get; set; }
[DataMember]
public int SomeInt { get; set;}
}
只要SomeProp
为空,这就有效。只要给SomeProp
一个值,就会出现相同的错误。我进入了一个新的水平并装饰了CustomBaseProp
,这也很有效。但是,我停在那里因为CustomBaseProp
中有更多的自定义类,并希望寻求其他解决方案。要修复完全修复它,您必须使用适当的属性修饰CustomBaseProp
类和其他自定义类。