CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: C#

PackageLoader helper

248 Views
Copy Code Show/Hide Line Numbers
namespace Microsoft.ComponentModel.Composition.Packaging
{
    public static class ContainerBuilder
    {
        private static PackageCatalog _packageCatalog;
        private static CompositionContainer _container;
        private static object _lock = new Object();
 
        public static CompositionContainer GetContainer()
        {
            if (_container == null)
            {
                lock (_lock)
                {
                    _packageCatalog = new PackageCatalog();
                    _packageCatalog.AddPackage(Package.Current);
                    _container = new CompositionContainer(_packageCatalog);
                    _container.ComposeExportedValue(new PackageService(_packageCatalog));
                }
            }
            return _container;
        }
     }
 
    public class PackageService
    {
        private PackageCatalog _catalog;
 
        public PackageService(PackageCatalog catalog)
        {
            _catalog = catalog;
        }
 
        public void AddPackage(Package p)
        {
            _catalog.AddPackage(p);
        }
    }
}
by Glenn Block
  November 26, 2009 @ 11:03am

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate