我不确定如何理解以下代码:
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的字符串文字,但不确定如何。这是我第一次看到声明了一个用逗号分隔的两个内部值的类。这是某种匿名函数吗?
答案 0 :(得分:1)
这是一个无参数构造函数。如果您已经有权访问变量,请执行以下操作:
ClientSecrets = new ClientSecrets
{
ClientId = varClientId,
ClientSecret = varClientSecret
},
这实际上是在调用默认构造函数,没有参数的构造函数,然后语法允许您设置Properties
。在这种情况下ClientId
和ClientSecret
。
如果您无权访问这些变量,则需要将它们放在您的范围内。
答案 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);