MSDN сообщает свойства TypeId
, что:
Как реализовано, этот идентификатор является просто типом атрибута. Однако предполагается, что уникальный идентификатор будет использоваться для идентификации двух атрибутов одного типа.
Однако предполагается ли использование для различения между отдельными экземплярами атрибутов (например, теми, которые связаны с разными экземплярами класса, к которому они применяются) или между атрибутами, которые имеют одинаковый тип, но из-за значений их свойств семантически различаются?
Например, скажем, у меня было следующее:
public sealed class AmpVolume : System.Attribute
{
public int MaxVolume { get; set; }
public AmpVolume(int maxvolume)
{
MaxVolume = maxvolume;
}
}
[AmpVolume(11)]
public class SpinalTapGuitarAmp
{
}
[AmpVolume(11)]
public class SpinalTapBassAmp
{
}
[AmpVolume(10)]
public class RegularAmp
{
}
Должен ли я реализовать TypeId как
get
{
return (object)this; //TypeId identifies every individual instance of the attribute
}
Или
get
{
return (object)MaxVolume; //If we compare two AmpVolume attributes, they should be the same if the volume is the same, right?
}