IdeaBlade DevForce 2010 Help Reference
WithFilter Method
See Also  Example Send Feedback
IdeaBlade.Core Assembly > IdeaBlade.Core.Composition Namespace > CompositionContext Class : WithFilter Method



exportFilter
Creates a new CompositionContext from the current context with the specified "global" metadata filter.

Syntax

Visual Basic (Declaration) 
Public Function WithFilter( _
   ByVal exportFilter As Func(Of Export,Boolean) _
) As CompositionContext
Visual Basic (Usage)Copy Code
Dim instance As CompositionContext
Dim exportFilter As Func(Of Export,Boolean)
Dim value As CompositionContext
 
value = instance.WithFilter(exportFilter)
C# 
public CompositionContext WithFilter( 
   Func<Export,bool> exportFilter
)
C++/CLI 
public:
CompositionContext^ WithFilter( 
   Func<Export^,bool>^ exportFilter
) 

Parameters

exportFilter

Example

C#Copy Code
public class CompositionContextResolver : BaseCompositionContextResolver {

  public override CompositionContext GetCompositionContext(string compositionContextName) {

    // Creates a new context from the Default context, with global metadata filtering.
    if (compositionContextName == "Mock") {
      var filter = CompositionContext.BuildExportFilter("IsMock", true);
      return CompositionContext.Default
         .WithFilter(filter)
         .WithName("Mock");
    } else {
      return base.GetCompositionContext(compositionContextName);
    }
  }
}

[InheritedExport(typeof(EntityServerQueryInterceptor))]
[ExportMetadata("IsMock", true)]
public class MockEntityServerQueryInterceptor : EntityServerQueryInterceptor {

  protected override bool ExecuteQuery() {
    throw new InvalidOperationException();
  }
}

Remarks

If you've decorated your classes with the ExportMetadata attribute to provide metadata about the exported type you can filter for these types in your CompositionContext by providing an export filter. Use BuildExportFilter to create the filter.

A global filter is one which applies to discovery of all extensible types.

Requirements

Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family

See Also

© 2013 All Rights Reserved.