AttributeTargets Alanı
Örnek
Şöyle yaparız. Bu attribute class ile kullanılır.
Eğer bu alan true ise ata sınıf attribute tanımlarsa, alt sınıflara da geçer.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız. Bu attribute class ile kullanılır.
[AttributeUsage(AttributeTargets.Class)]
public class ServiceAttribute : Attribute
{
public Type Service { get; }
public ServiceAttribute(Type service)
{
Service = service;
}
}
Şöyle yaparız[Service(typeof(TruckService))]
public class Truck : Vehicle
// ...
Bu attribute'a erişmek için şöyle yaparızpublic class VehicleServiceFactory
{
public IVehicleService GetVehicleService(Vehicle vehicle)
{
var attributes = vehicle.GetType().GetCustomAttributes(
typeof(ServiceAttribute), false);
if (attributes.Length == 0)
throw new NotSupportedException("Vehicle not supported");
return (IVehicleService) Activator.CreateInstance(((
ServiceAttribute)attributes[0]).Service);
}
}
Inherited AlanıEğer bu alan true ise ata sınıf attribute tanımlarsa, alt sınıflara da geçer.
Örnek
Şöyle yaparız.
[AttributeUsage(Inherited=true)]
public class FooAttribute : System.Attribute
{
private string name;
public FooAttribute(string name)
{
this.name = name;
}
public override string ToString() { return this.name; }
}
Bu durumda çıktı olarak "hello" görürüz.[Foo("hello")]
public class BaseClass {}
public class SubClass : BaseClass {}
// outputs "hello"
Console.WriteLine(typeof(SubClass).GetCustomAttributes().First());
Hiç yorum yok:
Yorum Gönder