代码段:确定关联筛选器的参数的类型
上次修改时间: 2010年5月6日
适用范围: SharePoint Server 2010
本文内容
说明
必备组件
使用该示例
说明
以下代码示例演示如何使用 BDC 对象模型获取与筛选器关联的参数的类型。
如果您希望在客户端订阅文件中提供筛选器类型,此代码示例尤其有用。外部列表视图的 view.xml 具有一个 <Method> 标记,它显示所连接的查找工具方法。在该标记下有描述筛选器信息的筛选器标记。您可以使用以下代码示例(从 view.xml 给定方法和筛选器名称)来确定与筛选器关联的参数类型。
必备组件
服务器上安装了 Microsoft SharePoint Server 2010 或 Microsoft SharePoint Foundation 2010。
客户端计算机上安装了 Microsoft Office 2010 和 Microsoft .NET Framework 3.5。
Microsoft Visual Studio。
至少一个解决方案部署到 BCS 客户端缓存。
使用该示例
在客户端计算机上启动 Visual Studio,然后创建 C# Office 应用程序加载项项目。在创建项目时,选择".NET Framework 3.5"。
从"视图"菜单中,单击"属性页"以显示项目属性。
在"生成"选项卡中,为"目标平台"选择"任何 CPU"。
关闭项目属性窗口。
在"解决方案资源管理器"中的"引用"下,移除除 System 和 System.Core 之外的所有项目引用。
将以下引用添加到项目中:
Microsoft.Office.BusinessApplications.Runtime
Microsoft.BusinessData
System.Windows.Forms
用以下语句替换现有 using 语句。
using System; using Microsoft.BusinessData.MetadataModel; using Microsoft.Office.BusinessData.MetadataModel; using Microsoft.BusinessData.Runtime; using System.Windows.Forms;
用此过程末尾列出的代码替换加载项的启动事件中的代码。
用有效值替换 nameSpace、entityName、methodName 和 filterName 的值。
保存该项目。
编译并运行该项目。
RemoteSharedFileBackedMetadataCatalog remoteCatalog = new RemoteSharedFileBackedMetadataCatalog();
IEntity entity = remoteCatalog.GetEntity("<nameSpace>", "<entityName>");
string methodName = <methodName>; // Name of the method from view.xml
string filterName = <filterName>; // Name of the filter from view.xml
IMethodInstance mi = entity.GetMethodInstance(methodName, MethodInstanceType.Finder);
IFilterCollection viewFilters = mi.GetFilters();
IUserInputFilter filter = entity.Catalog.Helper.GetUserInputFilterByName(viewFilters, filterName);
Type filterType = filter.GetValueType();
MessageBox.Show(filterType.ToString());
请参阅
引用
RemoteSharedFileBackedMetadataCatalog