Microsoft Bond System.Object

时间:2018-01-29 04:16:29

标签: azure-service-fabric bond

我需要确保以下类可以由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实施。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我不了解Service Fabric部件,但从Bond的角度来看,所有要序列化的字段必须为Bond所知,并且必须是一种类型(或可转换为类型)才能被序列化。实际上,这意味着您需要序列化的所有数据结构都以.bond文件的集合表示。

最接近C#的object将是bonded<bond.Void>字段,您稍后会将其反序列化为适当的已知派生类型。您需要包含(或能够推断/推导)正确的派生类型。 polymorphic container example证明了这种模式;它使用基础结构中的枚举字段来携带派生类型信息。