【问题标题】:List<object> as method argument pass through service proxy between two service callList<object> 作为方法参数在两个服务调用之间通过服务代理
【发布时间】:2020-05-14 01:53:14
【问题描述】:

我有一个无状态服务结构 Azure 应用程序,其中一个具有方法参数作为列表。 例如

sourceService:
--------------
    List<object> listObject = new List<object>();
     listObject.Add(123);//integer
     listObject.Add("abc");//string
     listObject.Add(listObject);//list of list
     listObject.Add(object);//any object

     serviceproxy.MyMethod(listObject );//service proxy call

destinationService:
------------------
  public async static MyMethod(List<object> listObjects){
   //to do operation on list
   //dynamically parse list based on type serialization and deserialization
  }

那么如何将对象列表作为参数传递给一个服务到另一个服务,或者可能是其他调用方式,请提出一些在服务端通过传递任何类型的参数作为方法参数来列出解析的方法。

提前致谢。

【问题讨论】:

    标签: c# azure-service-fabric service-fabric-stateless


    【解决方案1】:

    对于列表中可能出现的每种元素类型,您必须使用KnownType 属性来annotate 数据协定。否则接收方在反序列化消息时不知道要创建哪种类型。该属性支持生成有关包含类型的元数据。 查看链接了解更多信息。

    [DataContract]
    [KnownType(typeof(CircleType))]
    [KnownType(typeof(TriangleType))]
    public class MyList : List<Shape>
    {
        [DataMember]
        public Shape ShapeOfLogo;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 2017-08-23
      相关资源
      最近更新 更多