我需要的类/模型的实例(用于访问非静态成员的目的)在我的自定义属性。
I need an instance of class/model(for the purpose of accessing a non-static member) within my custom attribute.
public class LoginModel
{
[AutoComplete(currentInstance)] //pass instance of class or CompanyNames
public string DepartmentName { get; set; }
public string[] DepartmentNames { get {...} }
}
有没有办法做到这一点,而无需使用新()
或反思。
这是完全不可能的。属性被烤成装配在编译时的元数据,以便在谈论一个合格的类的一个属性的情况下没有任何意义,因为情况下,只有在运行时存在。
That's totally impossible. Attributes are baked into the metadata of the assembly at compile-time so talking about passing an instance of a class to an attribute doesn't make any sense because instances exist only at runtime.
在另一方面属性始终反射消耗,所以我想,在那一刻你检查的类此的元数据自定义属性,你可以使用该实例的presence。
On the other hand attributes are always consumed by reflection, so I guess that at the moment you are checking for the presence of this custom attribute on the class metadata you could use the the instance.