StaticName和InternalName之间的区别(在SPField类中)

Goy*_*uix 3 sharepoint moss wss caml

我想半智能CAML查询 - 我可以给它一个标题(这是最终用户看到的)并查找相应的"标题"以作为CAML查询的一部分传递:

var caml = "<OrderBy><FieldRef Name='" + field + "'/></OrderBy>";
Run Code Online (Sandbox Code Playgroud)

看起来我可以使用对象模型迭代列表的Fields集合,然后键入Title属性以与用户看到的内容进行比较.我的问题在于StaticName与InternalName的使用.我的内容+ MSDN文档似乎表明InternalName是在上面的代码中使用和替换字段的正确属性- 特别是因为无法修改InternalName.

任何人都可以阐明这一点吗?

Col*_*lin 7

在msdn论坛上查看这个问题:

名字与 静态名称

在CAML中创建站点列时,只需要"名称"属性,该属性映射到对象模型中的SPField.InternalName,您不必设置StaticName属性.相应地,SPField.InternalName和SPField.StaticName将返回相同的值.但是,如果在CAML中设置StaticName属性,则SPField.InternalName将返回Name属性中指定的值,SPField.StaticName将返回StaticName属性中指定的值.