我正在尝试使用位于此处的绑定方法,但没有运气 https://github.com/ninject/ninject.extensions.factory/wiki/Factory-interface https://github.com/ninject/ninject.extensions。 factory/wiki/Factory-interface%3A-Reference-Named-Bindings
请记住,我不是想这样做:https : //gist.github.com/akimboyko/4593576 而是我试图使用约定 GetMercedes() 来表示
我基本上是在尝试实现这一点:https ://gist.github.com/akimboyko/4593576 ,上面的示例中指定了约定。
using Ninject;
using Ninject.Extensions.Factory;
using Ninject.Modules;
using Ninject.Parameters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Test.NinjectFactory
{
    public class Program
    {
        public static void Main()
        {
            using (var kernel = new StandardKernel(new CarModule()))
            {
               var factory = kernel.Get<ICarFactory>();
               var mercedes =factory.GetMercedes();
                int i = 1; 
            }
        }
        public interface ICar
        {
            void Drive();
        }
        public class Mercedes : ICar
        {
            readonly ICarFactory carFactory;
            public Mercedes(ICarFactory carFactory)
            {
                this.carFactory = carFactory;
            }
            public void Drive()
            {
                var Mercedes = this.carFactory.GetMercedes();
            }
        }
        public interface ICarFactory
        {
            ICar GetMercedes();
        }
        public class CarModule : NinjectModule
        {
            public override void  Load()
            {
                //https://github.com/ninject/ninject.extensions.factory/wiki/Factory-interface%3A-Referencing-Named-Bindings
                Kernel.Bind<ICarFactory>().ToFactory();
                Bind<ICar>().To<Mercedes>().NamedLikeFactoryMethod<ICarFactory>(x => x.GetMercedes());//doesnt work for me
            }
        }
    }
}