1

私はC#で記述されたWebサービスを持っており、このプロジェクトにProjectDTOというモデルを追加しました。このクラスのいくつかのオブジェクトを返すWebサービスがあり、WebサービスがProjectDTOではなくxml結果でProjectというノードを返すようにするにはどうすればよいですか?

XmlRoot、XmlElementなどのいくつかの属性をProjectDTOクラスに追加しようとしましたが、機能しません。

ありがとう

編集

public class ProjectDTO {
  //some properties
}

私のWebサービス(.asmxファイル..これはasp.net 2.0の単純なWebサービスです)メソッド:

[WebMethod]
public ProjectDTO[] GetProjects();

私の出力xml:

<ArrayOfProjectDTO ...> 
 <ProjectDTO>
  <Id>...</Id>
  <Nome>...</Nome>
 </ProjectDTO>
</ArrayOfProjectDTO>

このxml出力で「ProjectDTO」があるすべての場所の名前を「Project」に変更したいのですが、それは可能ですか?

ありがとう

4

1 に答える 1

2

以前に似たようなものをプログラムしたことがあることは知っていましたが、覚えるのに少し時間がかかりました。

探しているフォーマットは次のとおりです。

public class WebService : System.Web.Services.WebService {
    [WebMethod]
    [return: XmlRoot(ElementName = "Projects")]
    public ProjectDTO[] HelloWorld()
    {
        return new ProjectDTO[] { new ProjectDTO(), new ProjectDTO(), new ProjectDTO(), }; 
    }       
}

[XmlType(TypeName = "Project")]
public class ProjectDTO
{
    public string Blah { get; set; }
}

キーはXmlRootAttributeとXmlTypeAttributeです。

于 2012-04-25T13:41:27.253 に答える