2017-12-11 13 views
0

쿡 컴퓨팅 라이브러리를 사용하여 XML-RPC를 통해 C# .NET의 객체 배열에 XML의 구조체 배열을 전송/매핑하는 방법이 있습니까?.NET의 C#에서 CookComputing에 의해 XML-RPC를 사용하여 XML의 구조체 배열을 객체의 Array (IList/IEnumerable) 배열에 매핑하는 방법은 무엇입니까?

는 예를 들어, 나는 XML-RPC 서버에이 배열 보낼 : 또한

<?xml version="1.0"?> 
<methodCall> 
    <methodName>mynamespace.methodName</methodName> 
    <params> 
     <param> 
     <value> 
     <array> 
      <data> 
      <struct> 
       <member> 
        <name>param1String</name> 
        <value><string>ABCDEFGH</string></value> 
       </member> 
       <member> 
        <name>param2Int</name> 
        <value><i4>123456</i4></value> 
       </member> 
      </struct> 
      <struct> 
       <member> 
        <name>param1String</name> 
        <value><string>QWERTY</string></value> 
       </member> 
       <member> 
        <name>param2Int</name> 
        <value><i4>987654</i4></value> 
       </member> 
      </struct> 
      </data> 
     </array> 
     </value> 
     </param> 
    </params> 
</methodCall> 

을,이 요청을 처리하기 위해 다음과 같은 서버 방법이 있습니다

[XmlRpcMethod("mynamespace.methodName")] 
    public void ProcessArrayOfObjects(Array[] myArray) 
    //public void ProcessArrayOfObjects(XmlRpcStruct[] myArray) 
    { 
     try 
     { 
      // ... would process, but myArray is empty 
     } 
     catch (Exception e) 
     { 
      logger.Error(e, "Processing array failed! Reason: {0}", e.Message); 
     } 
    } 

내가 3을 사용하고를 XML 요청을 처리하기 위해 CookComputing이 제공하는 타사 XML-RPC 라이브러리 수신 된 XML 입력을 Array[] 또는 XmlRpcStruct[] 또는 심지어 구체적인 클래스의 배열로 매핑 한 후에 가져온 것은 빈 배열입니다.

또는 List<ConcreteObject>으로 매핑하려고했지만 <array></array><data></data> 태그는 제거했습니다. XML-RPC 요청 오류 (잘못된 XML 형식)가 있습니다.

CookComputing 프레임 워크로 무엇을 할 수 있습니까?

답변

0

간단한 대답은 이것이다 :

<?xml version="1.0"?> 
<methodCall> 
    <methodName>mynamespace.methodName</methodName> 
    <params> 
     <param> 
     <value> 
     <array> 
      <data> 
      <value> 
      <struct> 
       <member> 
        <name>param1String</name> 
        <value><string>ABCDEFGH</string></value> 
       </member> 
       <member> 
        <name>param2Int</name> 
        <value><i4>123456</i4></value> 
       </member> 
      </struct> 
      </value> 
      <value> 
      <struct> 
       <member> 
        <name>param1String</name> 
        <value><string>QWERTY</string></value> 
       </member> 
       <member> 
        <name>param2Int</name> 
        <value><i4>987654</i4></value> 
       </member> 
      </struct> 
      </value> 
      </data> 
     </array> 
     </value> 
     </param> 
    </params> 
</methodCall> 
: 가 나는 <value></value> 태그에 내 <struct></struct>의 각 포장 할 필요가