【前言】:
最近在学ASP.NET MVC CORE,研究解耦相关的知识。现在的方案是(中间看过其他道友写的源码,有借鉴)
1、写一个CommandBus与控制器对接
2、控制器写入信息时,创建一CommandModel然后提交到一个CommandHandlerFactory
3、CommandHandlerFactory负责找到并执行相应的Handler(通过来遍历查找)问题就在这里,以下为源码:
var handlers = typeof(BaseCommandHandler).Assembly.GetExportedTypes()
.Where(x => x.GetInterfaces()
.Any(a => a.IsGenericType))
.Where(h => h.GetInterfaces()
.Any(ii => ii.GetGenericArguments()
.Any(aa => aa == typeof(TCommand)))).ToList();
return handlers;
【问题】:
通过这种反射查找的方式目的是为了能解耦,但对反射用的不多,不了解对性能的损耗大不大,若有相对较大的损耗,可能就得别选方案了。
其实就是想了解通过这种方式,对性能影响是否大?麻烦了
几乎跟正常调用,没有多少差别,可以忽略
好的谢谢了,暂时放心了