Ninject简单的Demo

Posted jamess

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ninject简单的Demo相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Ninject;

namespace NinjectDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel();
            kernel.Bind<IHuman>().To<Chinese>()              //依赖性链
                .WithPropertyValue("Capital", "北京")          //指定属性的参数值
                .WithPropertyValue("SkinColor","黄色")
                .WithConstructorArgument("count", "13");         //指定构造函数的参数值

            //kernel.Bind<IHuman>().To<USA>().WithPropertyValue("Capital", "华盛顿");
            //kernel.Bind<IHuman>().To<Japanese>().WithPropertyValue("Capital", "东京");



            IHuman human = kernel.Get<IHuman>();
            human.Talk();

            Console.ReadKey();
        }
    }

    //实体类
    public class Person
    {
        public string Name { get; set; }
        public string Language { get; set;}
    }

    //接口

    public interface IHuman
    {
        void Talk();
    }

    //实现接口的类

    public class Chinese : IHuman
    {
        public string Capital { get; set; }  //首都
        public string SkinColor { get; set; } //肤色

        private string Population { get; set; } //人口

        public Chinese(string count)  //构造函数
        {
            Population = count;
        }

        public void Talk()
        {
            Console.WriteLine("中国人说,你好!");
            Console.WriteLine("首都:{0}",this.Capital);
            Console.WriteLine("肤色:{0}",this.SkinColor);
            Console.WriteLine("中国共有{0}亿人",this.Population);
        }
    }

    public class USA : IHuman
    {
        public string Capital { get; set; }
        public void Talk()
        {
            Console.WriteLine("美国人说,Hello!");
            Console.WriteLine("首都:{0}", this.Capital);
        }
    }

    public class Japanese : IHuman
    {
        public string Capital { get; set; }
        public void Talk()
        {
            Console.WriteLine("日本人说,こんにちは!");
            Console.WriteLine("首都:{0}", this.Capital);
        }
    }



}

 

以上是关于Ninject简单的Demo的主要内容,如果未能解决你的问题,请参考以下文章

在我自己的 OWIN 中间件中使用 Ninject DI

[vscode]--HTML代码片段(基础版,reactvuejquery)

Ninject之旅之八:Ninject插件模型

MVC+Ninject+三层架构+代码生成 -- 总结(建項目)

Note3:大话Ninject

MVC+Ninject+三层架构+代码生成 -- 总结(實體類)