我正在考虑替换 ASF 中 RPC 的默认序列化程序。这涉及实现一些接口,其中一个在通过 RPC 通信的服务之间传递
public interface IServiceRemotingResponseMessageBody
{
void Set(object response);
object Get(Type paramType);
}
由于实现需要可序列化,明显的 ProtoBuf 实现类似于
[ProtoContract]
public class ProtoBufRemotingResponseBody : IServiceRemotingResponseMessageBody
{
[ProtoMember(1)]
public object Value { get; set; }
public void Set(object response)
{
Value = response;
}
public object Get(Type paramType)
{
return Value;
}
}
不幸的是,这失败了
没有为类型定义序列化程序:System.Object
这里有解决方法吗?System.Object 没有合同,但 OOTBDataContract
序列化程序可以,这里的MessagePack 也可以,但是这些不是模式化的,这在使用可靠集合时会产生版本控制问题。我尝试过使用通用的基本类型,但 Value 可以是or等等。IEnumerable<T>
T
任何人都可以帮忙吗?谢谢,KH