C# 自定义 如何验证构造函数的参数?



我有一个自定义属性,该属性定义了某种方法:

[AttributeUsage(AttributeTargets.Method)]
class ProjectConverterAttribute : Attribute
{
    public Version BaseVersion { get; private set; }
    public Version TargetVersion { get; private set; }
    public ProjectConverterAttribute( string baseVersion, string targetVersion )
    {
        BaseVersion = new Version(baseVersion);
        TargetVersion = new Version(targetVersion);
    }
}

可以使用字符串表示来初始化版本类的实例:" major.minor [.build [.revision]]"

现在,我可以将任何字符串指定为参数,并获得由解析错误引起的运行时异常,仅在使用反射方法执行此代码时:

[ProjectConverter( "1.0.1.215","1.0.1.R220")]
bool Convert( Project project )
{
}

是否可以通过在代码编辑器中突出显示?中验证此值像它一样,它适用于 assemblyVersionAttribute ,具有与参数相同的版本形式的字符串。它可以在file properties assemblyInfo.cs

中找到。
[assembly: AssemblyVersion("1.0.904.2")]

如果我试图超过该值,则该刺痛将在设计时突出显示为错误。

这可以通过编写自己的自定义Visual Studio分类器扩展程序(https://msdn.microsoft.com/en-us/library/dd885492.aspx)来完成。

最新更新