如何在.NET中将外部类型/方法标记为已弃用/已过时?

时间:2012-10-17 14:55:07

标签: c# asp.net

我们正在尝试在构建时标记外部类型(如ConfigurationManager)的使用情况。

自定义代码分析字典可以帮助[1],但仅限于项目中包含源的情况。类似地,Obsolete属性适用于项目中包含的类型。

我甚至不确定代码分析规则是否能够检查方法体? [2]。

关于如何在构建时标记外部类型/方法的使用的任何建议?

[1] - http://msdn.microsoft.com/en-us/library/bb514188.aspx

[2] - http://msdn.microsoft.com/en-us/library/dd172127(v=vs.90).aspx

1 个答案:

答案 0 :(得分:0)

一种方法是创建自定义FxCop规则,在代码分析阶段检查字段,如下所示:

internal sealed class SampleRule : BaseIntrospectionRule
{

    public override ProblemCollection Check(Member member)
    {
        const string typeName = "System.DateTime";
        var field = member as Field;
        if (field == null || field.Type.FullName != typeName)
            return null;
        return new ProblemCollection 
        { 
            new Problem(new Resolution(field.Name.Name, "Type {0} is obsolete", typeName)) 
        };
    }
}

我建议您查看this tutorial