Sdílet prostřednictvím


x:ClassModifier – direktiva

Upraví chování kompilace XAML, pokud x:Class je také k dispozici. Konkrétně se místo vytvoření částečné classPublic úrovně přístupu (výchozí) vytvoří poskytnutá x:Class úroveň přístupu s NotPublic úrovní přístupu. 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 versus TypeAttributes.NotPublic , se liší v závislosti na programovacím jazyce, který používáte za kódem. Viz poznámky.

Závislosti

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

Poznámky

Hodnota využití služeb XAML v .NET se liší podle programovacího x:ClassModifier 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.NotPublic, a zda je tento jazyk rozlišovat malá a velká písmena.

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

  • Pro Rozhraní .NET jazyka Microsoft Visual Basic je řetězec, který se má předat k určení TypeAttributes.NotPublic , je 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), ale zadávání TypeAttributes.Public se provádí jen zřídka, 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í, x:ClassModifier protože v kódu XAML nejsou podporované vnořené odkazy na třídy, a proto TypeAttributes.NotPublic má modifikátor stejný účinek.

Poznámky k zabezpečení

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

Viz také