我必须从配置文件中添加很多共享文件夹。名称很长,但都以“名称”,“域”,“用户名”和“密码”结尾。
一个例子是:
AddSharedFolder(
myConfigurationHandler.MyConfiguration.MyService.RSController.repositoryName,
myConfigurationHandler.MyConfiguration.MyService.RSController.repositoryDomain,
myConfigurationHandler.MyConfiguration.MyService.RSController.repositoryUsername,
myConfigurationHandler.MyConfiguration.MyService.RSController.repositoryPassword);
我的想法是这样称呼它
AddSharedFolder(
"myConfigurationHandler.MyConfiguration.MyService.RSController.repository");
然后有一个重载的AddSharedFolders方法:
private static void AddSharedFolder(string prefix)
{
AddSharedFolder(prefix + "Name", prefix + "Domain", prefix + "Username", prefix + "Password");
}
显然最后一种方法是错误的。但是,如何将字符串转换为变量名?还是这真的是一个愚蠢的编程实践?
最佳答案
C#中没有办法执行Eval(“ ...”),语言不是那么动态。因此,您最后一次尝试使用某种方法将无效。
我会去
var ctr = myConfigurationHandler.MyConfiguration.MyService.RSController;
AddSharedFolder(ctr.repositoryName, ctr.repositoryDomain,
ctr.repositoryUsername, ctr.repositoryPassword);
另外,您可以使用字符串作为路径,但这确实会走错路。