C# 获取方法';属性,而不创建实例
我有以下课程:C# 获取方法';属性,而不创建实例,c#,C#,我有以下课程: public class Person { [SomeCustomAttribute] public void blahblahblah() {} } 是否可以通过反射提取方法的属性,而不创建实例?我知道实例属性是不可能的,那么实例方法呢?如果方法是静态的,它会工作吗?将类设为静态的(实际上,静态类在幕后有一个实例) 在该静态类内部(或从任何外部类),您可以做任何您想做的事情,而无需实例化对象(包括获取属性)。将该类设置为静态(实际上,静态类在幕后有一个实例)
public class Person
{
[SomeCustomAttribute]
public void blahblahblah()
{}
}
是否可以通过反射提取方法的属性,而不创建实例?我知道实例属性是不可能的,那么实例方法呢?如果方法是静态的,它会工作吗?将类设为静态的(实际上,静态类在幕后有一个实例)
在该静态类内部(或从任何外部类),您可以做任何您想做的事情,而无需实例化对象(包括获取属性)。将该类设置为静态(实际上,静态类在幕后有一个实例)
在该静态类(或任何外部类)内,您可以做任何您想做的事情,而无需实例化对象(包括获取属性)。
public class Person
{
[Obsolete("Obsolete field")]
public int Field { get; set; }
[Obsolete("Obsolete property")]
public int Property { get; set; }
[Obsolete("Obsolete method")]
public void blahblahblah()
{ }
}
然后
“分析”类型的反射只需要类型
对象,而不需要要分析的CLA实例。属性“活动”在类型中,而不是在对象的每个实例中。如果编译时已知Type
(typeof(Person)
),那么这里没有问题。如果它是泛型MyMethod()
的T
,则相同。第三种常用方法是,如果您有一个myObj
实例,那么myObj.GetType()
将返回该实例的Type
。还有第四种方法使用字符串
并使用Type.GetType()
但它需要全名,因此比较复杂
您可以使用反射字段、属性、方法(它们的描述符,而不是它们的值)进行“分析”(枚举)。元数据要清楚!)。。。都以类型
对象开始。如果没有对象的实例,您就不能获取实例字段/属性的值,设置实例字段/属性的值,调用实例方法(但显然,您可以使用静态字段/属性/方法执行上述所有操作)给定
public class Person
{
[Obsolete("Obsolete field")]
public int Field { get; set; }
[Obsolete("Obsolete property")]
public int Property { get; set; }
[Obsolete("Obsolete method")]
public void blahblahblah()
{ }
}
然后
“分析”类型的反射只需要类型
对象,而不需要要分析的CLA实例。属性“活动”在类型中,而不是在对象的每个实例中。如果编译时已知Type
(typeof(Person)
),那么这里没有问题。如果它是泛型MyMethod()
的T
,则相同。第三种常用方法是,如果您有一个myObj
实例,那么myObj.GetType()
将返回该实例的Type
。还有第四种方法使用字符串
并使用Type.GetType()
但它需要全名,因此比较复杂
您可以使用反射字段、属性、方法(它们的描述符,而不是它们的值)进行“分析”(枚举)。元数据要清楚!)。。。都以类型
对象开始。如果没有对象的实例,您不能做的是获取实例字段/属性的值,设置实例字段/属性的值,调用实例方法(但显然,您可以使用static
字段/属性/方法执行上述所有操作)