私はIPデバイスと通信するWCF SOAP Webサービスを持っています.各デバイスは、使用するすべての変数のタイプを含むメッセージを提供します:
<tns1:Device wstop:topic="true">
<tnsavg:Logs wstop:topic="true">
<tt:MessageDescription IsProperty="true">
<tt:Data>
<tt:SimpleItemDescription Name="BaseId" Type="xsd:integer"/>
<tt:SimpleItemDescription Name="BootCount" Type="xsd:integer"/>
<tt:SimpleItemDescription Name="SystemLogId" Type="xsd:integer"/>
<tt:SimpleItemDescription Name="AccessLogId" Type="xsd:integer"/>
主に int、boolean、および string 型を使用する約 20 から 30 の異なるアイテムを取得する可能性があります。これは私が受け取ることができるメッセージの例です:
<wsnt:Message>
<tt:Message UtcTime="2011-01-01T00:02:14.946Z">
<tt:Source/>
<tt:Data>
<tt:SimpleItem Name="BaseId" Value="3332536653"/>
<tt:SimpleItem Name="BootCount" Value="2525"/>
<tt:SimpleItem Name="SystemLogId" Value="73"/>
<tt:SimpleItem Name="AccessLogId" Value="9"/>
</tt:Data>
</tt:Message>
</wsnt:Message>
ここでの主な問題は、このメッセージをコントローラーのプロパティに表示したいのですが、コントローラーを使用する人がそれらを使用して簡単に情報を取得できるように表示する方法がわからないことです。この方法でアイテムを表示するクラスを作成することを考えていました:
public class DataClass
{
public string Name;
public string Value;
public string Type;
}
私が考えた他のオプションは、ExpandoObjects を使用することでしたが、これは、ユーザーがすべてのオプションをハードコーディングする必要があり、コントローラーが処理するデバイスごとに 40 の異なるメッセージが存在する可能性があることを意味します。
コントローラーのユーザーが簡単に実装できるように、これを行うより良い方法はありますか?