コード例 #1
0
ファイル: Registry.cs プロジェクト: jbinder/dragon
            public void Process(Type type, PluginGraph graph)
            {
                if (typeof(IInterceptor<>).IsAssignableFrom(type))
                {
                    var interceptedType = type.GetGenericArguments().First();

                    var allSubclasses = CPR.Config.Assemblies.SelectMany(x => x.GetTypes()).Where(t => t.IsSubclassOf(interceptedType));

                    foreach (var subclass in allSubclasses)
                    {
                        Debug.WriteLine("Registering subclass " + subclass.ToString() + " to " + type.ToString());
                        var c = subclass;
                        graph.Configure(x => x.For(c).Use(type));
                    }
                }
            }