コード例 #1
0
ファイル: WebAppDomainManager.cs プロジェクト: ikvm/crosswalk
        public void BindHandler(
            ref CrosswalkModule.BindHandlerContext context,
            out CrosswalkModule.ExecuteHandlerDelegate executeHandler)
        {
            lock (_handlers)
            {
                if (!_handlers.TryGetValue(context.Name, out executeHandler))
                {
                    CrosswalkModule.BindHandlerDelegate binder;
                    lock (_binders)
                    {
                        if (!_binders.TryGetValue(context.ManagedType, out binder))
                        {
                            var parts = context.ManagedType.Split(new[] { "," }, 2, StringSplitOptions.None);

                            var assembly = Assembly.Load(parts[1]);
                            var type     = assembly.GetType(parts[0]);
                            var instance = (IBinder)Activator.CreateInstance(type);
                            binder = instance.Bind;
                            _binders.Add(context.ManagedType, binder);
                        }
                    }
                    binder(ref context, out executeHandler);
                    _handlers.Add(context.Name, executeHandler);
                }
            }
        }
コード例 #2
0
        public void Bind(
            ref CrosswalkModule.BindHandlerContext binding,
            out CrosswalkModule.ExecuteHandlerDelegate executeHandler)
        {
            var app     = AppBuilder.BuildConfiguration(binding.ScriptProcessor);
            var handler = new Handler(app);

            executeHandler = handler.Execute;
        }