定義が以下のような AmbientClassAttribute の使用は何ですか (C# の場合):
using System;
namespace Metamodel
{
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public sealed class AmbientClassAttribute : System.Attribute
{
}
}
定義が以下のような AmbientClassAttribute の使用は何ですか (C# の場合):
using System;
namespace Metamodel
{
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public sealed class AmbientClassAttribute : System.Attribute
{
}
}
これAmbientClassAttribute
は、名前が属性クラスを意味するため、次のようにクラス定義の属性として使用されることを意味します。
[AmbientClass]
public class MyClass { }
これは、メタデータを追加するだけです-それはクラスをAmbientClassとしてマークします-それが意味するものは何でも。ただし、それ自体をマークする動作(属性の追加)には、その背後にロジックがありません。そのため、クラスにはメンバーがありません。何もしません。クラスをアンビエントクラスとしてマークするだけです。
では、それは何のために良いのでしょうか?これにより、他のコード、つまり私のクラス(この場合はXAMLプロセッサー)を通過するコードがこのメタデータを認識し、それに応じて処理できるようになります。「XAMLプロセッサー[これを使用して]メンバーの型所有者を判別する」。