2011-12-24 50 views
1

Webサービスへの参照を追加しています。 Webサービスでは、CustomerRecordというクラスがあります。私はというメソッドを持っていて、CustomerRecordクラスの配列を返します。Webサービス参照の追加後のあいまいな参照

Webサービスを使用するプロジェクトもCustomerRecordクラスです。これはWebサービスのものを正確に表したものです。

ウェブサービスを使用すると、2つのCustomerRecordクラスがあります。これはあいまいな参照エラーにつながります。

答えて

1

単純な解決方法は、その1つの名前を変更することです。しかし、あなたがそれをすることができないなら、あなたはまだ2つの選択肢があります。

両方のCustomerRecordクラスを参照するファイルの先頭からusingを削除し、完全な名前空間を使用して参照します。

​​

または、同じファイルで、usingを使用して、そのファイルの1つだけをエイリアスすることができます。

using WsCustomerRecord = My.Long.Namespace.CustomerRecord; 

// ... 

    WsCustomerRecord customer = new WsCustomerRecord(); 
1

エラーが発生した行では、コンパイラはこれら2つのクラスのどちらを選択するかを決定できません。

  1. は、両方のクラスのために別の名前空間を使用してください:あなたはオプションがあり、これを解決するために

  2. は使用エイリアス

両方のクラスが同じ名前空間にあるとき、最初のオプションはのみ必要とされているクラスの一つ

  • 削除して、あなたはそれらの両方を維持したいです。

    2番目のオプションは、両方のクラスがまったく同じ場合に便利です。クライアントのものを削除するか、サービス参照を追加するときに、既存のクラスを再利用するオプションを選択して、クライアントのバージョンを保持することができます。

    最後のオプションは、このように動作します:

    using ns1 = Some.CoolNamespace; 
    using ns2 = Another.CoolNaespace; 
    
    ns2.AClass x = new ... 
    
  • 1

    あなたがウェブbserviceを使用する場合は、CustomerRecordクラスは、Webサービスと同じ名前空間を持つ必要があります。あいまいさを解決するには、\ resolveを右クリックして、CustomerRecordオブジェクトへの参照を明示的に必要な名前空間に書き込みます。

    CustomerRecordは同じクラスなので、Webサービスを使用するプロジェクトにあるCustomerRecordを削除し、Webサービスのみを使用することをお勧めします。

    あなたは余分なコードを書くことができるように、Webサービスで必要とされていないか、ウェブメソッドから任意のクラスがPARTIALであることを覚えてSOAPによってシリアライズされていない特定のコードを記述する必要がある場合は

    public partial class CustomerRecord 
    { 
    .... 
    
    関連する問題