WildcardFilter クラス (Microsoft.Office.Server.ApplicationRegistry.Runtime)
値にアスタリスク (*) のワイルドカード文字が含まれるような、フィールド値などの場合に返されるインスタンスを制限するフィルタを表します。field like value
名前空間: Microsoft.Office.Server.ApplicationRegistry.Runtime
アセンブリ: Microsoft.SharePoint.Portal (microsoft.sharepoint.portal.dll 内)
構文
'宣言
<SerializableAttribute> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel:=True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel:=True)> _
Public Class WildcardFilter
Inherits ComparisonFilter
'使用
Dim instance As WildcardFilter
[SerializableAttribute]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel=true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel=true)]
public class WildcardFilter : ComparisonFilter
備考
このフィルタの種類を使用して、"次の文字列で始まる" や "次の値を含む" など、ユーザーにとって分かりやすいフィルタを表示することができます。これにより、特定のバックエンドが使用しているワイルドカード文字、および特定のバックエンドに関してワイルドカード自体をエスケープする方法を知る必要がなくなります。たとえば、SAP ではワイルドカードとして '*'、それをエスケープするためにシーケンス [*] を使用します。単一の '*' ワイルドカード文字、およびリテラル * を入力として実際に渡すために用いられる単一の \* シーケンスを入力することにより、これが行われます。メタデータの作成者は LobSystem 上で WildcardCharacterEscapeFormat および WildcardCharacter プロパティを設定して、これらをシステム固有のワイルドカード要件にマップします。
例
この例は AdventureWorksSample2000 サンプルの Product エンティティに対して WildcardFinder メソッドを実行する方法を示しています。この例では AdventureWorksSample2000 サンプルで返される Entity インスタンスに、この製品名として単語 bike が含まれている場合に、制限されます。
Prerequisites
共有サービス プロバイダが既に作成されていることを確認します。
コード内の定数値 EnterYourSSPNameHere を共有サービス プロバイダの名前と置き換えます。
例で参照されている LobSystem オブジェクトおよびエンティティの名前がビジネス データ カタログ内に存在することを確認します。有効な名前を使用します。
Project References
このサンプルを実行する前に、コンソール アプリケーション コード プロジェクトに以下のプロジェクト参照を追加します。
Microsoft.SharePoint
Microsoft.SharePoint.Portal
Microsoft.Office.Server
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Office.Server.ApplicationRegistry.MetadataModel;
using Microsoft.Office.Server.ApplicationRegistry.Runtime;
using Microsoft.Office.Server.ApplicationRegistry.SystemSpecific;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;
namespace Microsoft.SDK.SharePointServer.Samples
{
class ExecuteWildcardFilter
{
const string yourSSPName ="EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
FindFiltered();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void FindFiltered()
{
NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
FilterCollection fc = prodEntity.GetFinderFilters();
FilterCollection newfc = new FilterCollection();
for (int i = 0; i < fc.Count; i++)
{
if (fc[i].GetType().FullName == "Microsoft.Office.Server.ApplicationRegistry.Runtime.WildcardFilter")
{
if (string.IsNullOrEmpty("Name") || (0 == string.Compare(fc[i].Name, "Name")))
{
newfc.Add(fc[i]);
}
}
}
((WildcardFilter)newfc[0]).Value = "*bike*";
IEntityInstanceEnumerator prodEntityInstanceEnumerator = prodEntity.FindFiltered(newfc, AdvWorksIns);
while (prodEntityInstanceEnumerator.MoveNext())
{
IEntityInstance IE = prodEntityInstanceEnumerator.Current;
foreach (Field f in prodEntity.GetFinderView().Fields)
Console.Write(IE[f]);
Console.WriteLine("");
}
}
}
}
継承階層
System.Object
Microsoft.Office.Server.ApplicationRegistry.Runtime.FilterBase
Microsoft.Office.Server.ApplicationRegistry.Runtime.UserInputFilter
Microsoft.Office.Server.ApplicationRegistry.Runtime.ComparisonFilter
Microsoft.Office.Server.ApplicationRegistry.Runtime.WildcardFilter
スレッドの安全性
この型のパブリックで静的な (Visual Basic では Shared) すべてのメンバは、スレッド セーフです。インスタンス メンバは、スレッド セーフであるとは保証されません。
関連項目
参照
WildcardFilter メンバ
Microsoft.Office.Server.ApplicationRegistry.Runtime 名前空間