これに少し引っ掛かりに遭遇し、私がどこでうまくいかないのか疑問に思います。
サーバーには、OrderとOrderDtoの2つのクラスがあります。Orderクラスはドメインオブジェクトを作成し、OrderDtoクラスはDTOオブジェクトを作成します。
DTOクラスには、それを変更する次の属性があります。
[Serializable]
[XmlRoot("Order"), SoapType("Order")]
public class OrderDto : IDto
XmlRoot / SoapType属性の目的は、OrderDtoをクラスOrderとしてエンドユーザーに表示することです。現在はそうしていません。これが私のWebサービスのメソッドであり、サービス参照を介して別のプロジェクトから呼び出されています。
[WebMethod(Description = "Creates a new order with project information.")]
public OrderDto CreateOrderByProject(string name, string description)
{
OrderDto orderDto = OrderDto.Create(name, description);
return orderDto;
}
[Test]
public void CreateOrderWithValidProjectSubcode()
{
OrderDto orderDto = WorkflowServices.CreateOrderByProject(OrderName, OrderDescription);
}
ご覧のとおり、WorkflowServices.CreateOrderByProjectは、Order型ではなく、OrderDto型のオブジェクトを返すことを宣言しています。
エンドユーザーにOrderDtoではなくOrderが表示されるように、このコードをどのように変更できますか?
編集:XmlType(TypeName = "Order")を使用するだけで十分なようです。遊び続けるつもりです。