2012-03-02 12 views
2

私はVBでWCFサービスを開発中です。私は私のDTOがdifférentas名前空間にあることを尋ねられました。DataContract WCFのネームスペース

ファーストクラス:

Namespace DTO 
    Namespace SaveContext 

     <DataContract(Namespace:="MyProject/DTO", Name:="Reply")> _ 
     Public Class Reply 

     'Members and methods of my first class 

     End Class 

    End Namespace 
End Namespace 

セカンドクラス:私は、オブジェクトを作成するために来るとき

Namespace DTO 
    Namespace ClearContext 

     <DataContract(Namespace:="MyProject/DTO", Name:="Reply")> _ 
     Public Class Reply 

     'Members and methods of my second class 

     End Class 

    End Namespace 
End Namespace 

、すべてが正常であるここでは、2つのクラスを持つ例です。ここでは例です:

Dim saveReply As New DTO.SaveContext.Reply 
Dim clearReply As New DTO.ClearContext.Reply 

しかし、私は私のサービスをテストするためのテストプロジェクトを行うために来たときに、名前空間は表示されません、と私の2つのクラスが同じである入れていません。 IntellisenceはReplyという名前の最初のクラスに行き、Reply1という名前の2番目のクラスに行きました。私はクラスと同じ階層を望んでいました。だから私はそれが可能かどうか疑問に思う?私はあなたの応答を楽しみにしています。ご注意いただきありがとうございます。

答えて

1

WCFは自動的にクラス「名前付けの衝突」を解決しています。同じXML名前空間に2つの別個のC#クラスを定義しているため、WCF WSDLジェネレータはそれらを別々のXMLスキーマとして正しくマークします。あなたが見ている動作は、マイクロソフトが「設計通りに」言うのが好きなようなものです。あなたが実際にやる必要があるのは、継承を使用して、あなたのシナリオでKnownTypesです。

関連する問題