1

C# で記述されたアセンブリがあります。その中には、静的関数などを持つ多数の静的クラスがあります。別の c# プロジェクトからこれらの関数を参照することは問題なく機能しますが、VB.NET プロジェクトでそれらを使用しようとすると、クラスは利用できません/表示されませんそれらはオブジェクトブラウザに表示されますが、これらのクラスを参照しない限り、プロジェクトはコンパイル/実行されます。

たとえば、C#でクラスを定義する方法は次のとおりです...

namespace Tools
{
    public static class MyTools
    {
        public static int SumNumber(int n1, int n2) { return n1 + n2; }
    }
}

VB でクラスを使用しようとすると、次のエラーが発生します。

'MyTools' is not declared. It may be inaccessible due to its protection level.

完全修飾名「Tools.MyTools.SumNumber....」を使用しようとすると、まったく同じエラー メッセージが表示されます。

C# アセンブリと VB プロジェクトの両方が .NET 4.5 をターゲットにしていることを確認しました。

4

2 に答える 2

1

プロジェクトのプロパティで「ルート名前空間」オプションをクリアしたところ、すべてが正常に機能するようになりました。そのままにしておくと、プログラマーを混乱させる明白でない名前空間のネストにつながります。

于 2013-07-29T15:04:59.653 に答える