SharePoint Web Service系列:获取网站LCID
有时我们在使用Web Service时难免会用到SharePoint网站的区域ID。比如,根据不同的语言Update相应的值到列表里。又或者是调用为不同的语言准备的后台应用程序页面。
如果把LCID硬编码到代码里,显然会限制我们程序的使用范围。也不符合我们的专业精神。那如何通过SharePoint Web Service 得到LCID呢?
其实一点也不难。
sitedataservice.SiteData sd;
sd = new sitedataservice.SiteData();
sd.Url = baseUrl + "/_vti_bin/sitedata.asmx";
sd.Credentials = System.Net.CredentialCache.DefaultCredentials;
sitedataservice._sWebMetadata webMetaData;
sitedataservice._sWebWithTime[] arrWebWithTime;
sitedataservice._sListWithTime[] arrListWithTime;
sitedataservice._sFPUrl[] arrUrls;
string roles; string[] roleUsers; string[] roleGroups;
uint i = sd.GetWeb(out webMetaData, out arrWebWithTime, out arrListWithTime, out arrUrls, out roles, out roleUsers, out roleGroups);
uint lcid = webMetaData.Language;
其中的关键是:
1、SharePoint自带的SiteData.asmx 的调用
2、WebMetadata中包含了我们需要的LCID(还有很多对我们有用的信息,比如Web ID,用户等等)
3、对于有备用语言的网站,看到有人使用读取SharePoint自带的列表的Title的方法。比如“日历”。判断如果是“日历”,就是中文;如果是"Calendar",就是英文。对付这种多语言的网站,这也不失为一种解决办法。
参考资料
Understanding the Multilingual User Interface (MUI)
How to get current Sharepoint site LCID in silverlight web part
分类:
SharePoint
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构