替换此代码中的文字字符串

时间:2013-12-11 13:13:08

标签: c#

我不确定如何理解以下代码:

private readonly IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
  ClientSecrets = new ClientSecrets
  {
    ClientId =  "xxx.apps.googleusercontent.com",
    ClientSecret = "abcde"
  },
  Scopes = new[] { DriveService.Scope.DriveFile, DriveService.Scope.Drive }
});

我想用来自在此代码之外声明的变量的值替换ClientId和ClientSecret的字符串文字,但不确定如何。这是我第一次看到声明了一个用逗号分隔的两个内部值的类。这是某种匿名函数吗?

2 个答案:

答案 0 :(得分:1)

这是一个无参数构造函数。如果您已经有权访问变量,请执行以下操作:

ClientSecrets = new ClientSecrets
  {
    ClientId =  varClientId,
    ClientSecret = varClientSecret
  },

这实际上是在调用默认构造函数,没有参数的构造函数,然后语法允许您设置Properties。在这种情况下ClientIdClientSecret

如果您无权访问这些变量,则需要将它们放在您的范围内。

答案 1 :(得分:-2)

我不知道为什么人们会像我上面列出的那样编写垃圾代码。这是更人道的事情:

AuthorizationCodeFlow.Initializer codeflowInitializer = new GoogleAuthorizationCodeFlow.Initializer();
codeflowInitializer.ClientSecrets = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ClientSecrets>(jsonSecrets);
codeflowInitializer.Scopes = new[] { DriveService.Scope.DriveFile, DriveService.Scope.Drive };
IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(codeflowInitializer);