0

ラッパークラスをパブリックとして公開する方法はありますが、他のクラスはwr内でプライベート/保護されます

このスクリプトが DLL ファイルにあるとしましょう。

protected class Class1
{
    public string Foo1() { return "Hello World!"; }
}

public class Class2
{
    Class1 class1 = new Class1();

    public Class1 Class1_Test 
    {
       get { return class1; }
    }
}

Windows フォームまたは Web ページがあるとします。

ここで を呼び出しClass2.Class1_Test.Foo1()"Hello World!"値を取得しています。

Class1()両方をCLass1.Foo1()Windows フォームに表示しないようにするにはどうすればよいですか?

保護レベルが原因で Class2 にアクセスできないという構文エラーが発生します。

4

2 に答える 2

1

あなたの例では、Class1andを含む別のアセンブリがある場合、内部コンストラクターを指定Class2できるため、アセンブリでのみインスタンス化できます。Class1

public class Class1
{
    internal Class1() 
    {
    }

    public string Foo1() { return "Hello World!"; }
}

public class Class2
{
    Class1 class1 = new Class1();

    public Class1 Class1_Test 
    {
       get { return class1; }
    }
}

インスタンス化しようとするアセンブリの外部にあるものはすべてClass1、エラーを受け取ります。

The type 'MyAssembly.Class1' has no constructors defined    
于 2013-07-11T23:27:44.503 に答える