我想知道TaxonomyItem. NormalizeName
中是否存在来自SharePoint的C#
方法的等效方法。
该方法位于命名空间Microsoft.SharePoint.Taxonomy
中,但仅在SharePoint服务器本身上可用。在我看来,CSOM
的{{1}}没有相应的方法。
该函数本身会将某些字符转换为unicode字符。最好的例子是SharePoint 2010
符号。在分类中,角色存储为全宽&符号。
以下是一个例子:
&
存储在SharePoint中,如下所示:
Lisa & Tom
例如,如果您想在客户端应用程序中的服务器上放置Lisa & Tom
并且搜索字符串中包含这样的特殊字符,则CAML query
将找不到任何相应的结果。
目前我们用一个简单的自编函数来解决它,这个函数并不完整,因为我们不知道所有转换为unicode的字符。
以下是将此代码或等效函数用于CAML query
的更好方法:
TaxonomyItem. NormalizeName
答案 0 :(得分:2)
关于:
在我看来,SharePoint 2010的CSOM没有 相应的方法。
我还没有找到任何证据,至少Microsoft documentation表示它在SharePoint 2010 CSOM API中受支持,以下是如何使用它的示例:
var name = "Lisa & Tom";
var result = TaxonomyItem.NormalizeName(ctx, name);
ctx.ExecuteQuery();
Console.WriteLine(result.Value);
其中ctx
是ClientContext
但如果您不喜欢依赖于SharePoint库,那么这里是.Net版本:
public static string NormalizeName(string name)
{
if (name == null)
return null;
var trimSpacesRegex = new Regex("\\s+", RegexOptions.IgnoreCase | RegexOptions.Compiled);
return trimSpacesRegex.Replace(name, " ").Replace('&', '&').Replace('"', '"');
}
答案 1 :(得分:0)
您可能正在寻找String.Normalize()。
返回一个新字符串,其二进制表示形式为特定的Unicode规范化形式。