3

詳細:

インターフェイス コントラクト:

[OperationContract]
[WebGet(UriTemplate = "test")]
TestType TestOperation();

タイプ定義:

[System.Xml.Serialization.XmlRoot(ElementName = "Test", Namespace="http://test.net/", IsNullable=false)]
public partial class TestType {

実結果:

<TestType xmlns=http://schemas.datacontract.org/2004/07/ …

期待される結果:

<Test xmlns= http://test.net/ …

お知らせ下さい。

4

2 に答える 2

3

サービスは を使用しDataContractSerializerて応答をシリアル化しているため、データ コントラクト名前空間が必要です。それをオーバーライドするには、次のように XmlSerialzeFormat 属性を操作に適用することをお勧めします...

[OperationContract]
[WebGet(UriTemplate = "test")]
[XmlSerializerFormat]
TestType TestOperation();
于 2013-08-15T15:57:22.430 に答える
0

これが WCF サービスの場合、既定でデータ コントラクトシリアライザーが使用されます。代わりに、データ コントラクト属性を使用してクラスを装飾してみてください。

[DataContract(Name = "Test", Namespace="http://test.net/")]
public partial class TestType {

DataMember注:シリアル化する各フィールドまたはプロパティに属性を追加する必要もあります。

于 2013-08-15T15:55:33.193 に答える