.NET 反射和依赖注入
深度理解依赖注入:http://kb.cnblogs.com/page/45266/
.NET 反射和依赖注入
接口反射:
接口层:接口(interface) 定义为DAL层
接口(interface) Idal
使用反射技术(Reflection) 对Idal 使用工厂模式创建出锁需要的接口实例
例子:
string path = "DAL";
private DAL.Idal createIdal(string str)
{
string className = path + ".dal"+str;
return (DAL.Idal)System.Reflection.Assembly.Load(path).CreateInstance(className);
}
public string getstr(string str)
{
Idal dal = createIdal(str);
return dal.getString();
}
依赖注入:
按照依赖注入的需求模式对
接口:IA
A:IA
接口:IB
B:IB
在A:IA 里面实现
IB的实例化(使用反射技术)
在主程序里就可以实现 IA的实例就可以调用IB的成员函数。
例子:
定义类库IDAL
IA.CS
using System;
namespace IDAL
{
public interface IA
{
string show();
}
}
IB.CS
using System;
namespace IDAL
{
public interface IB
{
string getCode();
}
}
A.CS
using System;
namespace IDAL
{
public class A : IA
{
private IB ib = FACTORY.createIB();
public string show()
{
return ib.getCode();
}
}
}
B.CS
using System;
namespace IDAL
{
public class B : IB
{
public string getCode()
{
return "B";
}
}
}
FACTORY.cs //反射时所需的接口工厂
using System;
namespace IDAL
{
public class FACTORY
{
static string path = "IDAL";
static string className = "";
public static IDAL.IA createIA()
{
className = path + ".A" ;
return (IDAL.IA)System.Reflection.Assembly.Load(path).CreateInstance(className);
}
public static IDAL.IB createIB()
{
className = path + ".B";
return (IDAL.IB)System.Reflection.Assembly.Load(path).CreateInstance(className);
}
}
}
调用函数
IA ia = FACTORY.createIA();
ia.show();
转自:http://blog.csdn.net/angelzjk/article/details/5620324
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix