У меня есть атрибут, который можно применить к классу или свойству.Этот класс имеет два конструктора.Один принимает тип, другой принимает тип и строку.
[AttributeUsage(
AttributeTargets.Property |
AttributeTargets.Class,
AllowMultiple = true)]
class DcProxyAttribute : Attribute{
public DcProxyAttribute(Type type){ /*...*/ }
public DcProxyAttribute(Type type, string str){ /*...*/ }
}
Я могу использовать его как
[DcProxy(typeof(SomeType)]
class MyClass {
[DcProxy(typeof(SomeType, "Hello World")]
public string SomeProperty { get; set;}
}
Я хочу ограничить его этим использованием.Имеет смысл использовать его таким образом.
Следующие использования теперь считаются действительными, но они не должны.
[DcProxy(typeof(SomeType, "Hello world")]
class MyClass {
[DcProxy(typeof(SomeType)]
public string SomeProperty { get; set;}
}
Можно ли это сделать?
Iмог бы создать два отдельных класса для него.A DcProxyForClass
и A DcProxyForProperty
.И используйте его как
[DcProxyForClass(typeof(SomeType)]
class MyClass {
[DcProxyForProperty(typeof(SomeType, "Hello World")]
public string SomeProperty { get; set;}
}
, но этот вид кода делает его менее читабельным, так как с семантической точки зрения они делают то же самое.