我需要确保以下类可以由Microsoft Bond序列化。由于包含object
成员,我正在努力寻找一种方法。
public class BondRemotingRequestMessageBody : IServiceRemotingRequestMessageBody
{
public object Value;
public BondRemotingRequestMessageBody()
{
}
public BondRemotingRequestMessageBody(int parameterInfos)
{
}
public void SetParameter(int position, string paramName, object parameter)
{
Value = parameter;
}
public object GetParameter(int position, string paramName, Type paramType)
{
return Value;
}
}
有解决方法吗?
这适用于Azure Service Fabric ASR实施。
提前致谢。
答案 0 :(得分:0)
我不了解Service Fabric部件,但从Bond的角度来看,所有要序列化的字段必须为Bond所知,并且必须是一种类型(或可转换为类型)才能被序列化。实际上,这意味着您需要序列化的所有数据结构都以.bond文件的集合表示。
最接近C#的object
将是bonded<bond.Void>
字段,您稍后会将其反序列化为适当的已知派生类型。您需要包含(或能够推断/推导)正确的派生类型。 polymorphic container example证明了这种模式;它使用基础结构中的枚举字段来携带派生类型信息。