2

参照されている 2 つのアセンブリ間で名前空間が競合しています。

つまり、私は Foo.A.Foo と Foo.Bar を参照しているので、私が Foo.Bar.Control が欲しいと言ったとき、VS は Foo.A.Foo.Bar.Control を見つけようとしています。

新しい global:Foo.Bar.Control() を追加して Designer.cs コードをいじることができますが、何かを変更するとすぐに VS が元に戻ります。

エイリアスを参照に直接追加することについて何かがあることは知っています。試してみましたが、正しい組み合わせを見つけることができませんでした(インラインエイリアス、エイリアスを使用して、エイリアスを参照)。

ヘルプ?

4

2 に答える 2

0

「外部エイリアス」はあなたが意味するものかもしれませんが、残念ながらデザイナーがそれをどうするかはわかりません...

ただし、それがあなたの求めているものかどうかはわかりません-それは通常、同じ名前の異なるアセンブリからの2つのタイプです。

using ディレクティブを使用して名前空間エイリアスを記述できます。

using FooControl = Foo.Bar.Control;

しかし、デザイナーはあなたのコードを書き直します...

于 2009-08-11T09:56:01.147 に答える
0

OK、これは答えではありませんが、回避策として私が見つけたものです:

namespace FooBar
{
    class FooBarControlHack : Foo.Bar.Control { }
}

したがって、 Designer.cs で次のことができます。

this.fooBarControl = new FooBar.FoorBarControlHack();
于 2009-08-18T07:18:42.667 に答える