Sdílet prostřednictvím


x:ClassModifier – direktiva

Upraví chování kompilace XAML při poskytnutí x:Class. Konkrétně se místo vytvoření částečného class, který má úroveň přístupu Public (výchozí), vytvoří se poskytnutá x:Class s úrovní přístupu NotPublic. Toto chování ovlivňuje úroveň přístupu pro třídu ve vygenerovaných sestavení.

Použití atributu XAML

<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
   ...
</object>

Hodnoty XAML

Hodnota Popis
NotPublic Přesný řetězec, který se má předat k určení TypeAttributes.Public a TypeAttributes.NotPublic se liší v závislosti na programovacím jazyce, který používáte. Viz poznámky.

Závislosti

x:Class musí být také k dispozici ve stejném prvku a tento prvek musí být kořenovým prvkem na stránce. Další informace naleznete v [MS-XAML] Oddíl 6.3.1.8.

Poznámky

Hodnota x:ClassModifier v využití služeb XAML .NET se liší podle programovacího jazyka. Řetězec, který se má použít, závisí na tom, jak každý jazyk implementuje své CodeDomProvider a převaděče typů, které vrací, definují významy pro TypeAttributes.Public a TypeAttributes.NotPublica zda je tento jazyk citlivý na malá a velká písmena.

  • V jazyce C# je řetězec, který se má předat k určení TypeAttributes.NotPublic, internal.

  • Pro Rozhraní .NET jazyka Microsoft Visual Basic je řetězec, který se má předat k určení TypeAttributes.NotPublic, Friend.

  • Pro C++/CLI neexistují žádné cíle, které podporují kompilaci XAML; hodnota, která se má předat, je proto nezadaná.

Můžete také zadat TypeAttributes.Public (public v jazyce C#, Public v jazyce Visual Basic); Zadání TypeAttributes.Public je však zřídka provedeno, protože TypeAttributes.Public je již výchozím chováním.

Jiné hodnoty s ekvivalentními omezeními na úrovni přístupu uživatelského kódu, například private v jazyce C#, nejsou relevantní pro x:ClassModifier, protože v kódu XAML nejsou podporované vnořené odkazy na třídy, a proto má TypeAttributes.NotPublic modifikátor stejný účinek.

Poznámky k zabezpečení

Úroveň přístupu deklarovaná v x:ClassModifier je stále předmětem interpretace podle konkrétních architektur a jejich schopností. WPF zahrnuje funkce pro načítání a vytváření instancí typů, kde x:ClassModifier je internal, pokud se na tuto třídu odkazuje z prostředku WPF prostřednictvím odkazu na identifikátor URI balíčku. V důsledku tohoto případu a případně jiných, jako je implementovaná jinými architekturami, nespoléhejte výhradně na x:ClassModifier blokovat všechny možné pokusy o vytvoření instance.

Viz také