using System;
using Microsoft.Extensions.DependencyInjection;
namespace ConsoleApp6
{
class Program
{
static void Main(string[] args)
{
// 实例化DI框架
IServiceCollection services = new ServiceCollection();
// 在DI框架中加入接口的一个实例(它是单例的)
services.AddSingleton<IRun, Run>();
services.AddTransient<ITest, Test>();
services.AddTransient<IPCS,PCS>();
// 服务的提供者
IServiceProvider serviceProvider = services.BuildServiceProvider();
// 从服务提供者获取接口的实例(不用关心是如何创建的)
serviceProvider.GetService<IRun>().Run();
// serviceProvider.GetService<ITest>().Run();
serviceProvider.GetService<IPCS>().Run() ;
Console.ReadLine();
}
}
// 接口
interface IRun
{
void Run();
}
// 实现类
class Run : IRun
{
void IRun.Run()
{
Console.WriteLine("跑起来,兄弟");
}
}
class TT
{
string str;
public TT(string cmd)
{
str = cmd;
}
private void Run()
{
Console.WriteLine(str);
}
}
interface IPCS
{
void Run();
}
class PCS:IPCS
{
void IPCS.Run()
{
Console.WriteLine("PCS....");
}
}
interface ITest
{
void Run();
}
class Test : ITest
{
string name = "";
public Test(string tname)
{
name = tname;
}
void ITest.Run()
{
Console.WriteLine(name);
}
}
}
NetCore DI
猜你喜欢
转载自blog.csdn.net/farmwang/article/details/86135712
今日推荐
周排行