我是 nettcpbinding 回调函数的新手,
我有一个场景,我需要根据参数 pass ex 获取结果。messageId 并获取发布者根据 messageId 发布到订阅客户端时的结果数据。
谢谢,
我是 nettcpbinding 回调函数的新手,
我有一个场景,我需要根据参数 pass ex 获取结果。messageId 并获取发布者根据 messageId 发布到订阅客户端时的结果数据。
谢谢,
您可以使用KnownType
属性执行此操作。
您的结果类必须继承自一个基类,该基类装饰有所有可能的派生类:
[KnownType( typeof( ResultClassOne ) )]
[KnownType( typeof( ResultClassTwo ) )]
class ResultBase
{
public int MessageId { get; set; }
}
class ResultClassOne : ResultBase
{
... other properties
}
class ResultClassTwo : ResultBase
{
... other properties
}
这将允许正确序列化所有派生类。
然后在你的合约接口中使用基类:
ResultBase Method( int messageId )
在实现中,传回正确派生类的实例:
public ResultBase Method( int messageId )
{
if ( messageId == 1 ) return new ResultClassOne();
...