2

System.Windows.Controls.Controlwith visibilityから派生する Silverlight カスタム コントロールを作成しようinternalとしていますが、既定のスタイルを適用しようとすると問題が発生します。これがクラスの最も単純な形式です...

internal class MyClass : Control
{
    public MyClass()
    {
        DefaultStyleKey = typeof(MyClass);
    }
}

...そして、これはデフォルトのスタイルの単純な形式ですgeneric.xaml...

<Style TargetType="controls:MyClass">
    <Setter Property="Margin" Value="10" />
</Style>

このコントロールは何の役にも立ちませんが、インスタンスを作成することは可能ですが、その可視性がpublic. クラスが とマークされているinternal場合、アプリケーションで次のランタイム エラーが発生します。

Error: Unhandled Error in Silverlight Application 
Code: 4004    
Category: ParserError       
Message: No matching constructor found on type 'MyClass'.     
File:      
Line: 11     
Position: 40     

Xaml パーサーが内部コントロール クラスを認識できるようにするために必要なことを教えてください。

ありがとう、ティム

4

1 に答える 1

2

ほとんどの遅延バインディング シナリオではリフレクションが使用され、メソッド/メンバー/プロパティをパブリックにする必要があります。

この場合、公開しないのはなぜですか。

于 2010-09-10T10:04:06.883 に答える