使用反射获取类说明

本文关键字:说明 获取 反射 | 更新日期: 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# 文档注释)。