2009-07-27 9 views
0

これは、WCFサービスメソッドの戻り値の型である私は、このクラスを持っているサービスの使用時に競合を回避するにはどうすればよいですか? (.NET C#)

namespace CommonLibrary 
{ 
    public class Report() 
    { 
     public DateTime Begin { get; set; } 
     public int Count { get; set; } 
    } 
} 

を想像してみてください。 svcutil.exeを使用すると、メタデータからクラスが再生成されます。

namespace CommonLibrary 
{ 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] 
[System.Runtime.Serialization.DataContractAttribute(Name="TrafficProblemReport", Namespace="http://schemas.datacontract.org/2004/07/Indica")] 
public partial class TrafficProblemReport : object, System.Runtime.Serialization.IExtensibleDataObject 
{ 

    private System.Runtime.Serialization.ExtensionDataObject extensionDataField; 

    private System.DateTime BeginField; 

    private int CountField; 

    [System.Runtime.Serialization.DataMemberAttribute()] 
    public System.DateTime Begin 
    { 
     get 
     { 
      return this.BeginField; 
     } 
     set 
     { 
      this.BeginField = value; 
     } 
    } 

    [System.Runtime.Serialization.DataMemberAttribute()] 
    public int Count 
    { 
     get 
     { 
      return this.CountField; 
     } 
     set 
     { 
      this.CountField = value; 
     } 
    } 
} 
} 

CommonLibraryの定義と矛盾します。私はCommonLibraryのメソッドにWebサービスメソッドの結果(レポート)に合格しようとしたとき、私はコンパイルエラーが生じています:

エラー4のための最高のオーバーロードされたメソッドの試合「CommonLibrary.ClassName.MethodName(CommonLibrary.Report)」いくつかを持っています無効な引数

これを解決するには追加の名前空間を作成せずに? (型変換を避けたい)

+0

あなたはWCFクライアントプロジェクトで生成されたプロキシと自分の作成したクラスを参照している:私は右でなければなりません。これによると...そのsvcutilは、代わりに新しいものを作成するあなたのアセンブリ内の型を使用しています

を想定でしょうか? –

+0

私は –

答えて

2

WCFサービス参照を生成するときに "CommonLibrary"と異なる名前空間を指定してみてください。

+0

の両方を参照しています。または、その前に別の名前空間を追加しています。 .NET guidleinesは、しばしばあなたの会社名のような一意の外部名前空間を持つと言います。 –

+0

しかし、ある名前空間から別の名前空間にオブジェクトを変換する必要があります –

+0

質問を編集して別の回答を作成 –

関連する問題