1
オブジェクトとしてXMLファイルを受け入れる第三者のWebサービスを呼び出す必要があります。オブジェクトとしてXMLファイルを受け入れるWebサービスを呼び出す際の例外
-<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サービスでは変更はできません。
私はわからない、サービスプロバイダに連絡する必要があります。しかし、これを渡す方法を教えてもらえますか?<?xml version = "1.0" encoding = "UTF-8"?> –
はい、私のクラスでこれを追加する方法は分かりますか? –
通常、私が言及した行は、標準XMLファイルの最初の行です。いくつかのクラスライブラリは、この行のないXMLファイルを処理しますが、そのうちのいくつかは処理しませんし、それを必要とします。 ファイルの先頭にこの行を挿入し、アプリケーションを再実行して違いがあるかどうかを確認することで、簡単なテストを行うことができます。 また、「CallingWebserviceTest.Claims was expected not」というエラーメッセージを見ても、呼び出し元のクライアントアプリケーションがClaimsクラスの内容を知らないようです。それはちょうど推測ですが、それも問題かもしれません。 –