myConfigurationHandler

myConfigurationHandler

我必须从配置文件中添加很多共享文件夹。名称很长,但都以“名称”,“域”,“用户名”和“密码”结尾。

一个例子是:

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);


另外,您可以使用字符串作为路径,但这确实会走错路。

10-05 18:33