私は WCF に取り組んでおり、サービスの出力を制御したいと考えています。ここに私のクラスがあります:
[DataContract]
public class Authenticate
{
[DataMember(order=1)]
public int result;
[DataMember(order=0)]
Public string message;
}
[Operation Contract]
public interface IService1
{
Authenticate Login(string UName,string Password);
}
public class Service1:IService1
{
public Authenticate Login(string UName,string Password)
{
Authenticate result=new Authenticate();
if(UName=="mohit" && Password=="mohit")
{
result.result=1;
result.message="success";
}
else
{
result.result=0;
result.message="failure";
}
return result;
}
}
このメソッドの出力 XML (Metadata タグを無視) は次のとおりです。
<LoginResponse>
<LoginRsult>
<a:message>success</a:message>
<a:result>1</a:result>
</LoginRsult>
</LoginResponse>
私が出力として欲しいのは:
<authenticate>
<result>1</result>
<message>success</message>
</authenticate>
名前を Datamember に設定しようとしましたが、うまくいきませんでした。
また、データメンバーで順序を設定しても、メッセージタグは常に結果の前に表示されます(アルファベット順のようです)。