Click here to Skip to main content
15,881,812 members
Articles / Web Development / IIS

MEF and Workflow Services Integration

Rate me:
Please Sign up or sign in to vote.
4.83/5 (9 votes)
1 Jan 2011CPOL6 min read 34.8K   442   26  
Building up activities using the Managed Extensibility Framework for workflow services hosted in IIS.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BaseLibrary;
using System.ComponentModel.Composition.Primitives;
using System.ComponentModel.Composition.Hosting;
using System.IO;

namespace WorkflowServiceLibrary.Mef
{
    public class WorkflowServiceMefProvider : MefWorkflowProvider
    {
        public WorkflowServiceMefProvider(bool useTestServices) : base(useTestServices) { }
        /// <summary>
        /// Register parts to be used when useTestServices is enable in configuration
        /// </summary>
        /// <returns>catalog to be added to MEF</returns>
        protected override ComposablePartCatalog RegisterTestCatalogs()
        {
            // return the catalog, you can use AggregateCatalog, DirectoryCatalog ect here
            return new AssemblyCatalog(string.Concat(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).Parent.FullName, "\\TestLibrary\\bin\\debug\\TestLibrary.dll"));
        }
        /// <summary>
        /// Register parts that should always be available to MEF
        /// </summary>
        /// <returns>catalog to be added to MEF</returns>
        protected override ComposablePartCatalog RegisterCoreCatalogs()
        {
            // not used: catalogs registered here will be available regardless of useTestServices
            return null;
        }
        /// <summary>
        /// Register parts to be used when useTestServices is disabled in configuration
        /// </summary>
        /// <returns>catalog to add to MEF</returns>
        protected override ComposablePartCatalog RegisterNormalCatalogs()
        {
            // return the catalog, you can use AggregateCatalog, DirectoryCatalog ect here
            return new AssemblyCatalog(string.Concat(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).Parent.FullName, "\\ImplementationLibrary\\bin\\debug\\ImplementationLibrary.dll"));
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer NBN International
United Kingdom United Kingdom
I am Gareth, working in the book industry specializing in EDI and B2B integration. Starting out as a child bashing out programs on the old commodore 64, I have since progressed from VB6 through the .net framework and loving c#, wf, wpf and where these are heading... hoping one day to have the excuse to play with silverlight.

Comments and Discussions