C# 可以通过遍历对象树来读取注释吗
考虑到下面的代码,是否有一种方法可以遍历对象树并确定所有方法的进度、权重和总体成本 假设我有一个自定义注释:C# 可以通过遍历对象树来读取注释吗,c#,annotations,C#,Annotations,考虑到下面的代码,是否有一种方法可以遍历对象树并确定所有方法的进度、权重和总体成本 假设我有一个自定义注释: public enum ProgressWeight { ExtraLight, Light, Medium, Heavy, ExtraHeavy } [AttributeUsage(AttributeTargets.Method)] public class Progressable : Attribute { pu
public enum ProgressWeight
{
ExtraLight,
Light,
Medium,
Heavy,
ExtraHeavy
}
[AttributeUsage(AttributeTargets.Method)]
public class Progressable : Attribute
{
public ProgressWeight Weight { get; set; }
public Progressable(ProgressWeight weight)
{
this.Weight = weight;
}
}
我想这样实施:
public class Sumathig
{
Foo CompositionObject;
[Progressable(ProgressWeight.Light)]
public void DoSomethingLight()
{
\\Do something that takes little time
}
[Progressable(ProgressWeight.ExtraHeavy)]
public void DoSomeIntesiveWork()
{
CompositionObject = new Foo();
CompositionObject.DoWork();
CompositionObject.DoMoreWork();
}
}
class Foo
{
[Progressable(ProgressWeight.Medium)]
public void DoWork()
{
\\Do some work
}
[Progressable(ProgressWeight.Heavy)]
public void DoSomeMoreWork()
{
\\Do more work
}
}
选项1-注释 您提供的示例表明,您应该看看:
另一种方法是支持组合,并将所需的元数据作为一个类的属性公开。这可能适用于插件式体系结构。若您迭代类的
类型的数组或所涉及的方法的表达式,则应该能够做到这一点。。。不过看起来有点乱。注释
在本例中是错误的单词。固定标签。它们是属性
。如果您有关于类型
(元数据)的信息,那么您就有了所需的所有信息。使用反射。他很可能知道如何访问元数据,他想要的是遍历类树。我认为这是不可能的,除非你使用像Roslyn这样的东西。如果我必须使用编译器,我不太可能走这条路。我需要权衡方法并通过事件展示进展。