Language: C#
CompositionInitializer that does not hold on to parts by default
using System; using System.ComponentModel.Composition; using System.ComponentModel.Composition.Primitives; using System.ComponentModel.Composition.Hosting; namespace Microsoft.ComponentModel.Composition { public static class CompositionInitializerEx { public static void SatisfyImports(ComposablePart part, bool allowRecomposition = false) { var container = Hosting.CompositionHostEx.GetContainer(); if (allowRecomposition) CompositionInitializer.SatisfyImports(part); else container.SatisfyImportsOnce(part); } public static void SatisfyImports(object attributedPart, bool allowRecomposition = false) { var container = Hosting.CompositionHostEx.GetContainer(); if (allowRecomposition) CompositionInitializer.SatisfyImports(attributedPart); else container.SatisfyImportsOnce(attributedPart); } } namespace Hosting { public static class CompositionHostEx { private static CompositionContainer _container; internal static CompositionContainer GetContainer() { if (_container == null) { throw new ArgumentNullException("Initialize has not been called on CompositionInitializer"); } return _container; } public static void Initialize() { Initialize(new DeploymentCatalog()); } public static void Initialize(CompositionContainer container) { CompositionHost.Initialize(container); _container = container; } public static void Initialize(params ComposablePartCatalog[] catalogs) { var catalog = new AggregateCatalog(catalogs); var container = new CompositionContainer(catalog); Initialize(container); } } } }
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search


Juast a though: Did you mean to have:
if (_container == null)
{
Initialize();
}