使用 Google Admin API (C# / .Net)——如何添加与用户的第一个关系?

Using Google Admin API (C# / .Net)-- how can I add a first relationship to a user?

我有使用 HR SQL 数据库中的数据更新用户名和主管的工作代码。一切正常,直到我尝试更新 Google 中没有经理的用户的主管。该对象返回时 UserToUpdate.Relations 等于 null。看起来我应该能够创建一个关系,但是当我尝试将 UserRelation 项添加到用户时,它会出现“System.NullReferenceException: 'Object reference not set to an instance of an object.'”错误。有什么建议吗?如果用户还没有关系,有没有办法添加与用户的关系?

代码我是 运行:

User UpdateUser = service.Users.Get(sUserEmail).Execute();
//code here to look up data in sql
UserRelation UR = new UserRelation();
UR.Type = "manager";
UR.Value = sManagersEmail;
UpdateUser.Relations.Add(UR);  //this is where it fails
service.Users.Update(UpdateUser, sUserEmail).Execute();

我也尝试过使用 .Insert 方法而不是 .Add:

 UpdateUser.Relations.Insert(0,UR);  //this also fails

无济于事 -- 结果相同。

对于已经有管理员的用户,这有效:

UpdateUser.Relations[0].value = sManagersEmail; 

我找不到任何关于使用 .Net 做任何事情的进一步参考;我看到了如何在 .net 的 API 之外使用 JSON post 来做到这一点,但看起来我确实不应该那样做...

谢谢!

您应该检查用户对象上的关系 属性 是否不为空,否则实例化一个空列表,您将向其中添加新的关系对象。

尝试用它来代替失败的代码行:

if(UpdateUser.Relations == null){
 UpdateUser.Relations = new List<UserRelation>();
}
UpdateUser.Relations.Add(UR);