IHasResponseStatus
問題は、プロパティを使用するときに応答に 1 つの名前空間を使用しpublic ResponseStatus ResponseStatus { get; set; }
、接頭辞 d2p1 を削除する方法ResponseStatus
です。
http://schemas.tagway.com.ua/types
すべての Web サービス モデルに対して単一の名前空間を使用します。ServiceStack は ResponseStatus に独自の名前空間を自動的に追加するため、ResponseStatus ノードを除いて応答は良好に見えますxmlns:d2p1="http://schemas.servicestack.net/types"
。
サービス モデル:
namespace NTPCore.ServiceModel.Operations.Balance
{
public class Balance
{
public Auth auth { get; set; }
}
public class BalanceResponse : IHasResponseStatus
{
public ResponseStatus ResponseStatus { get; set; }
public int balance { get; set; }
public int limit { get; set; }
}
}
プロジェクト NTPCore.ServiceModel の AssemblyInfo.cs:
[assembly: ContractNamespace("http://schemas.tagway.com.ua/types", ClrNamespace = "NTPCore.ServiceModel.Operations.Balance")]
[assembly: ContractNamespace("http://schemas.tagway.com.ua/types", ClrNamespace = "ServiceStack.ServiceInterface.ServiceModel")] //may be this not need...experimenting, nothing happance for me
応答例:
<BalanceResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.tagway.com.ua/types">
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
</ResponseStatus>
<balance>0</balance>
<limit>0</limit>
</BalanceResponse>