0

私は2つのプロジェクトを持っています。最初のものは、次のインターフェイスを持つ Wpf プロジェクト (FrameWork 3.5) です。

public interface View
{
    ObservableCollection<int> Items { set; }  
}

およびテスト プロジェクト (FrameWork 4.0)

public class ViewFake:View
{
    public ObservableCollection<int> Items
    {
        set { throw new NotImplementedException(); }
    }
}

次のエラーが表示されます。

ViewFake' は、インターフェイス メンバー 'View.Items' を実装していません。'ViewFake.Items' は 'View.Items' を実装できません。'System.Collections.ObjectModel.ObservableCollection`1' の一致する戻り値の型がないためです。

両方のバージョンで ObservableCollection がどこにあるかを見てきましたが、

では、唯一の解決策はメイン プロジェクトをアップグレードするか、テスト プロジェクトをダウングレードすることでしょうか。

4

1 に答える 1

1

私が間違っていなければ、ObservableCollection は .NET 3.5 の System.Windows.* 名前空間にあり、4.0 でのみ System.Collections.ObjectModel 名前空間に移動されました。

*更新: 変更されたのは名前空間ではなく、アセンブリです。ただし、結果は同じです。含まれているアセンブリが型情報の一部であるため、.NET はそれを別の型と見なします。

ここでのより大きな問題は、テストとテスト対象のクラスが異なる .NET フレームワーク バージョンと異なるバージョンの共通言語ランタイムを使用していることです。それはおそらく涙で終わるでしょう。プロジェクトで同じバージョンを使用できますか?

于 2012-08-17T18:39:35.107 に答える