将集合数据传递给K2自定义服务代理方法

时间:2016-01-21 09:19:42

标签: c# xml k2

我有两个K2 SmartObjects:SmartObjectA获取一个对象列表。 SmartObjectB是一个自定义SmartObject,它使用从SmartObjectA(基本智能对象)返回的列表作为输入参数来执行自定义create方法。

在自定义服务代理的代码后面,我需要反序列化列表值。

  1. 如何将K2中收到的列表作为create方法的输入参数传递?我正在使用多值属性并为其分配SmartObjectA属性。

  2. K2使用什么格式来序列化多值,我如何检查输入值格式是什么,以便我可以正确映射列表?

  3. SmartObject A属性:

    Name - SOType.Text,
    ID - SOType.Number,
    Date - SOType.Date,
    Description - SOType.Text
    

    SmartObject B - 要使用SmartObjectA列表填充的属性:

         [Property("LineItems", SoType.MultiValue, "LineItems", "The line items.")]
                 public string LineItems
                 {
                     get
                     {
                         return _lineItems;
                     }
                     set { _lineItems = value; }
                 }
    

    SmartObjectB的输入属性和Create方法:

     [SourceCode.SmartObjects.Services.ServiceSDK.Attributes.Method("Create",
                     MethodType.Create,
                     "Create",
                     "Description",
                     new string[] { "CustomerId", "Date", "DueDate" },
                     new string[] { "CustomerId", "Date", "DueDate", "LineItems" },
                     new string[] { "TaxInvoiceId" })]
                 public TaxInvoice Create()
                 {
                     try
                     {
                        ..deserialize here
                     }
                 }
    

1 个答案:

答案 0 :(得分:0)

由于您已经拥有2个不同的智能对象,为什么不考虑构建复合智能对象。

使用复合智能对象,有效要求您构建自定义服务代理。

Composite Smartobject Creation