使用反射获取类说明
本文关键字:说明 获取 反射 | 更新日期: 2023-09-27 18:31:42
我正在尝试将完整类描述转换为字符串值。我已经指定了要枚举的类,以获得完整的描述。然而;在任何类对象上调用 ToString() 仅提供摘要。
我想要完整的定义,如与之相关的类文件 (.cs) 中显示的内容。
public class Expose : System.Attribute
{
public bool DoExpose;
public Expose(bool doExpose)
{
DoExpose = doExpose;
}
public static void DoStuff()
{
Assembly assembly = Assembly.GetAssembly(typeof(Expose));
var types = GetTypesWithExposeAttribute(assembly);
// get full class description - like the Car.cs
Console.WriteLine(types.First().FullName);
}
public static IEnumerable<Type> GetTypesWithExposeAttribute(Assembly assembly)
{
foreach (Type type in assembly.GetTypes())
{
if (type.IsDefined(typeof(Expose), true))
{
yield return type;
}
}
}
}
[Expose(true)]
public class Car
{
public int CarId { get; set; }
public string Name { get; set; }
public int Speed { get; set; }
}
假设您正在询问"xml文档注释"。
注释不是元数据的一部分,无法通过反射访问。
如果需要通过反射提供其他信息,请使用属性。(即 C# 文档注释)。