2017-09-05 100 views
0

我有定义了一些应用程序版本的方法的自定义属性: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使用相同版本格式的字符串作为参数。它可以在文件Properties \ AssemblyInfo.cs中找到。

[assembly: AssemblyVersion("1.0.904.2")] 

如果我试图超过这个值,这个刺会在设计时突出显示为一个错误。

+1

为什么你不使用单元测试呢? – Isma

+0

这是个好主意,谢谢!我会这么做的。但同意,突出显示更方便。 –

+0

不适合我,突出显得很烦人,而且你也将自己绑定到visual studio(请记住.net核心是多平台的)。我会去单元测试+持续集成,只要测试失败,你就会知道。 – Isma

回答

相关问题