2016-12-15 20 views
1

我需要調用接受xml文件作爲對象的第三方web服務。調用接受xml文件作爲對象的webservice時出現異常

-<Claims> 
    -<Claim> 
     <ID>ID1</ID> 
     -<Person> 
      <ID>ID1</ID> 
     </Person> 
     -<Encounter> 
      <Type>1</Type> 
     </Encounter> 
     -<Diagnosis> 
      <CodeTerm>ICD10</CodeTerm> 
      <Type>Principal</Type> 
      <Code>A12.0</Code> 
     </Diagnosis> 
     -<Activity> 
      <ID>ID1</ID> 
      <CodeTerm>ADA</CodeTerm> 
      <Start>12/02/2013 12:12</Start> 
      <Code>84132</Code> 
      <Quantity>0</Quantity> 
     </Activity> 
    </Claim> 
</Claims> 

我已經創建了一個樣本類並硬編碼了該值。調用Web服務時獲取以下異常。

**System.InvalidOperationException** 
Additional information: There was an error generating the XML document. 
Message: **The type CallingWebserviceTest.Claims was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.** 

Code: 



    XDocument doc = XDocument.Load(FILENAME); 

        Claims c = new Claims(); 
        List<ClaimsClaim> c1 = new List<ClaimsClaim>(); 
        ClaimsClaim cc = new ClaimsClaim(); 
        cc.claimID = "ID1"; 
        cc.personID = "ID1"; 
        cc.encounterType = 1; 
        cc.codeTerm = "ICD10"; 
        cc.codeType = "A12.0"; 
        cc.activityID = "ID1"; 
        cc.codeTerm = "ADA"; 
        cc.start = "12/02/2013 12:12"; 
        cc.activityCode = 84132; 
        cc.quantity = 0; 
        c1.Add(cc); 
        c.claims = c1; 
        Console.WriteLine(cc.personID);    
        Gway g = new Gway(); 
        responseClaimEdit[] responce; 
        string msg; 


    Console.WriteLine(g.DCG("1", c, "NS028", "|N28", out responce, out msg).ToString()); 

Class: 

    [XmlInclude(typeof(ClaimsClaim))] 
     [Serializable] 
     [XmlRoot] 
     public class Claims 
     { 
      public List<ClaimsClaim> claims { get; set; } 

     } 


     [Serializable] 
     public class ClaimsClaim 
     { 
      public string claimID { get; set; } 
      public string personID { get; set; } 
      public int encounterType { get; set; } 
      public string codeTerm { get; set; } 
      public string codeType { get; set; } 
      public string code { get; set; } 
      public string activityID { get; set; } 
      public string activityCodeTerm { get; set; } 
      public string start { get; set; } 
      public int activityCode { get; set; } 
      public int quantity { get; set; }   
     } 

任何人都可以在這裏幫忙嗎? Web服務中不能做任何改變。

回答

0

是否有可能使的XDocument類預期將XML文件有一個標準的XML頭,如以下幾點:

<?xml version="1.0" encoding="UTF-8"?> 
+0

我不知道,要聯繫服務提供商。然而ü可以PLZ告訴我如何通過這 - <?XML版本=「1.0」編碼=「UTF-8」?> –

+0

是的,我明白了,但如何在我的類中添加呢? –

+0

正常情況下,我提到的這一行應該是標準XML文件中的第一行。一些類庫會在沒有這條線的情況下處理一個XML文件,但其中一些不會處理並且需要它。 您可以通過在文件的開頭插入該行並重新運行應用程序,看它是否有差別做一個簡單的測試。 另外,看着錯誤消息,「CallingWebserviceTest.Claims不是預期的」,好像調用客戶端應用程序不知道Claim類是什麼。這只是一個猜測,但這也可能是一個問題。 –

相關問題