2

データベースからデータを返すことを目的とした WCF サービスを作成しています。このデータベースのデータは、複数の目的に使用できるように、可能な限り一般的になるように設計されています。Entityを示す別のテーブルにリンクされているタイプ フラグを持つ、呼び出されるキー タイプは 1 つだけEntityTypeです。

これがこれらの2つのタイプのモデルです...

ここに画像の説明を入力

どのように使用されるかの例として、型が、、、、であると想像しContinentCountryください。オブジェクトの階層を作成するために使用されるテーブルがあるので、簡単にするために心配する必要はありません。StateCity

これは、現時点でデータが XML 形式で出力される方法です...

XML データ サンプルそのまま

最終的に出力したいのは、このようなものです...

カスタム XML データ出力のサンプル

問題は、.Net の既定の動作を使用してこれを XML および/または JSON に解析するとEntity、XML ノード名にクラスが使用され、これが発生したくないことです。EntityTypeオブジェクトに関連付けられた によって XML ノードに名前が付けられるようにします。

EntityTypeデータベースに別のノードを追加すると、XML/JSON に関連する XML ノード名が表示されるように、柔軟性を維持するにはどうすればよいでしょうか?

必要な場合は、さらに説明を求めてください。これは非常に一般的な性質であるため、ここで説明するのは少し難しくなりました... :)

4

1 に答える 1

1

WCF を使用しているため、クライアントは応答の処理方法を知る必要があるため、データ コントラクトが必要です。動的なデータ コントラクトを作成することはできないと思いますが、次のように、ケースごとに特定のデータ コントラクトを作成し、プロパティの名前を変更できます。

[DataContract(Name = "Continent")]
public class Entity
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string Name { get; set; }
}

または、現在のエンティティ データ コントラクトを維持し、クライアントが結果をどのように解釈するかを識別するために、もう 1 つのプロパティを追加することもできます。

あれについてどう思う?

よろしく、

于 2013-01-03T21:23:59.663 に答える