示例#1
0
        public static void RegisterMef()
        {
            var container = ConfigureContainer();
            // use MEF for providing instances
            // RegistrationBuilder context = new RegistrationBuilder();

            // Install MEF dependency resolver for Web API
            var dependencyResolver = System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver;

            System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new MefDependencyResolver(container);
            //IDependencyScope
            //
            //https://weblog.west-wind.com/posts/2016/Dec/12/Loading-NET-Assemblies-out-of-Seperate-Folders
            Database.SetInitializer <WebHookStoreContext>(null);
            IDataProtector protector = Michal.Balador.Infrastructures.Security.DataSecurity.GetDataProtector(System.Configuration.ConfigurationManager.AppSettings["k"].ToString());
            ILogger        logger    = dependencyResolver.GetLogger();

            Microsoft.AspNet.WebHooks.Config.SettingsDictionary settings = dependencyResolver.GetSettings();

            string nameOrConnectionString = null;
            string schemaName             = null;
            string tableName = null;
            var    store     = new SqlWebHookStore(settings, protector, logger, nameOrConnectionString, schemaName, tableName);

            //it's singleton!!
            container.ComposeExportedValue <IWebHookStore>(store);
            var behaviors = new BehaviorItems <Behavior>();

            behaviors.Add(new ChangeMessageItemBehavior());
            behaviors.Add(new PostMessageItemBehavior());
            container.ComposeExportedValue(behaviors);

            //it's singleton!!
            //     var context = new BaladorContext();
            //  container.ComposeExportedValue<IBaladorContext>(context);
            //  container.ForType(typeof(ApplicationDbContext))
            //.Export(builder => builder.AsContractType(typeof(IUnitOfWork)))
            //.SetCreationPolicy(CreationPolicy.NonShared);
        }
示例#2
0
 public async Task <ResponseBase> Run(BehaviorItems <Behavior> behaviors = null)
 {
     return(await Task.FromResult(new ResponseBase()));
 }