打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
.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的成员函数。
 

例子:

接口:

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();

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
简单抽象工厂-继简单工厂改善
深入研究Petshop基础篇 - 紫风的日志 - 网易博客
C# IOC
Asp.Net MVC+EF+三层架构的完整搭建过程
ASp.net 剖析三层架构(2)
Microsoft PetShop 3.0 设计与实现--数据访问层
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服