我正在扩展UserPrincipal(https://msdn.microsoft.com/en-us/library/bb384372(VS.90).aspx)以获取它未提供的属性。它对公司,部门和其他人的价值观很有用,但我发现ProxyAddresses存在问题。它不起作用。 我已经尝试过HomePhoneOther的精确副本,但它也没有用。 我发现只有当集合只包含一个元素时才会起作用,否则会保留旧值并为它们添加新值。
有没有人遇到同样的问题?目前我不知道如果我有一个以上的值,如何设置HomePhoneOther。
感谢。
答案 0 :(得分:1)
我发现在添加新值之前必须先清除这些值。
在您的分机课程中:
[DirectoryProperty("ProxyAddresses")]
public string[] ProxyAddresses
{
get
{
object[] proxysRaw = ExtensionGet("ProxyAddresses");
string[] proxys = new string[proxysRaw.Length];
for (int x = 0; x < proxysRaw.Length; x++)
{
proxys[x] = (string)proxysRaw[x];
}
return proxys;
}
set
{
ExtensionSet("ProxyAddresses", value);
}
}
清除值并设置新值:
string[] s = new string[2];
s[0] = "smtp:jdoe@hotmail.com";
s[1] = "smtp:john.doe@hotmail.com";
user.ProxyAddresses = null;
user.Save();
user.ProxyAddresses = s;
user.Save();