2017-09-07 105 views
3

可以说我有一个相当长/复杂的参数列表属性。例如: [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV","|DataDirectory|\\stores.csv","stores#csv", DataAccessMethod.Sequential)]C#自定义属性shorthad

有没有一种方法来创建一个自定义属性作为此的简写,因此而不是键入上面的每一个方法,我可以只使用[CustomDataSource]

+2

的'DataSource'属性'sealed',所以你不能从它继承。任何寻找“DataSource”属性的代码都不会看到你的自定义属性。 – Amy

+1

如果问题是长度,那么使用'DataSource'的重载之一' – Nkosi

+0

@amy,谢谢。我觉得这很难。 :)。但有没有其他解决方案? –

回答

0

DataSource属性是密封的,你不能从它继承。

最简单的解决方法是使用常量:

public class Const 
{ 
    public const string Provider = "Microsoft.VisualStudio.TestTools.DataSource.CSV"; 
    public const string ConnString = "|DataDirectory|\\stores.csv"; 
    public const string Table = "stores#csv"; 
    public const string Method = DataAccessMethod.Sequential; 
} 

[DataSource(Const.Provider, Const.ConnString , Const.Table , Const.Method)]