小编myc*_*fee的帖子

从不同的程序集动态加载类(具有自定义行为)?

我们正在为少数客户构建应用程序,每个客户都有自己的要求以及类似的要求.我们还希望将所有代码保存在同一个应用程序中,而不是将其分支,并且IF不是很好的选择,因为它将遍布所有地方.

我计划为所有人提供基础课程.然后每个客户都有自己的类,其中override方法将执行特殊逻辑.

我们如何在编译时加载程序集而不是这样做

public class BaseClass {
    public string getEventId()
}

public class ClassForJohn:BaseClass {
    [override]
    public string getEventId()
}

public class ClassForAdam:BaseClass {
    [override]
    public string getEventId()
}

void UglyBranchingLogicSomewhere() {
   BaseClass  eventOject;
   if("John"==ConfigurationManager.AppSettings["CustomerName"]){
        eventOject = new ClassForJohn();


   }else if("Adam"==ConfigurationManager.AppSettings["CustomerName"]){
        eventOject = new ClassForAdam();


   }else{
        eventOject = new BaseClass ();

   }
  eventId = eventOject.getEventId();
}
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic-loading

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

dynamic-loading ×1