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 名前空間