Pull to refresh

Comments 4

Собственно поэтому в своем проекте используем autofaq — почти все из коробки. Странно что он не на столько распространен как остальные библиотеки.
Еще есть подобный код (правда проект mvc2 и относительно «старый» autofaq):
            Assembly executingAssembly = Assembly.GetExecutingAssembly();
            builder.RegisterControllers(executingAssembly).HttpRequestScoped();

            builder.RegisterAssemblyTypes(
                typeof (SomeClass).Assembly,
                typeof (OtherClassFromDifferentAssembly).Assembly,
                typeof (AnotherClassOfThirdAssembly).Assembly,
                executingAssembly);

            builder.RegisterAssemblyTypes(executingAssembly)
                .Where(t => t.Name.EndsWith("Repository") ||
                            (t.FullName.StartsWith("OurApplication.Models") &&
                             t.GetInterfaces().Any()))
                .AsImplementedInterfaces();

после Unity — просто счастье
Собственно сейчас что Unity, что Ninject, что Autofack представляют примерно одинаковый функционал. Похожая реализация на Unity.
var servicesAssembly = Assembly.GetAssembly(typeof (IService));

            foreach (var type in servicesAssembly.GetTypes()
                .Where(t => t.Name.EndsWith("Service") && t.IsClass))
            {
                var interfaceType = type.GetInterfaces().FirstOrDefault(i => i.Name.EndsWith("Service") &&                                                                             !(i.Namespace ?? string.Empty).EndsWith("Base"));
                if (interfaceType != null)
                {
                    container.RegisterType(interfaceType, type);
                }
            }
в юнити меня в основном раздражало задание Lifetime Scope. Да и в целом количество действий, которые необходимо предпринять. В приведенном мной коде это, например, первые 2 строчки.
Возможно в новой версии что-то изменилось (давно не следил).
Я соглашусь с вами, все же я тоже использую autofack, ни сколько из-за возможностей, сколько из-за качества исполнения этих возможностей. В данной ситуации Unity смотрится убого. Но не смотря на это возможности Unity, Ninject, Autofack примерно равны.
Sign up to leave a comment.

Articles