C# 第三方DLL的WCF错误
我是新来的C# 第三方DLL的WCF错误,c#,wcf,C#,Wcf,我是新来的WCF,面临一些问题。我有三个项目WCFClient,WCFService,CommonModel CommonModel:-拥有以下课程 公共教室:InotifyProperty已更改 { 国际室友; 公共虚拟int roomID_PK{get;set;} 公共房间() { Row1Details=新房间RowDetails(); Row2Details=新房间RowDetails(); } } [可序列化] 公共类RoomRowDetails:ISerializable,INo
WCF
,面临一些问题。我有三个项目WCFClient
,WCFService
,CommonModel
CommonModel
:-拥有以下课程
公共教室:InotifyProperty已更改
{
国际室友;
公共虚拟int roomID_PK{get;set;}
公共房间()
{
Row1Details=新房间RowDetails();
Row2Details=新房间RowDetails();
}
}
[可序列化]
公共类RoomRowDetails:ISerializable,INotifyPropertyChanged
{
公共房间详细信息()
{
RoomColor=“白色”;
RowSaleAmount=“”;
}
....
}
WCFClient
:正在使用客户端代理类李>
WCFService
:拥有服务合同
运营合同
数据合同
,并拥有以下类别:-
[DataContract()]
[ServiceKnownType(typeof(Room))]
[ServiceKnownType(typeof(RoomRowDetails))]
public class RequestData
{
[DataMember]
public string ClientName { get; set; }
[DataMember]
public bool isServer { get; set; }
[DataMember]
public bool isSuccess { get; set; }
[DataMember]
public Room room { get; set; }
[DataMember]
public RoomRowDetails roomrow{ get; set; }
}
CommandModel
project作为参考。正确生成客户端代理,但在运行项目时。我得到以下错误:-
尝试序列化参数时出错http://tempuri.org/:eventData. InnerException消息为“Type”CommonModel.MODELS.Room“with data contract name”Room:http://schemas.datacontract.org/2004/07/CommonModel.MODELS”他说。考虑使用DATACONTRORTCORDEVER或将未知类型的任何类型添加到已知类型的列表中——例如,通过使用NoNyType属性,或者将它们添加到传递给DATACONTROTTRORALIZER的已知类型列表中。有关更多详细信息,请参阅InnerException。
您能帮助我如何使用WCF
服务和客户端中的CommonModel
类(因此房间是项目双方共享的POCO)并避免上述错误吗
谢谢我没有看到
RoomRowDetails
或RoomRowDetails
是RequestData
的派生类型。那你为什么要用ServiceKnownType
属性标记它们呢?在RequestData
和Room
之间没有关系,我只是试着用ServiceKnownType
运行代码。但它没有起作用。