是否可以将包含我们所有接口的程序集的名称传递给 Castle,并让 Castle 自动查找并注册当前目录中包含这些接口的实现的所有程序集?
问问题
1396 次
1 回答
2
以下代码为我解决了这个问题。如果您发现任何问题,请发表评论。
var InterfacesAssemblyName = /* get assembly name from appSettings */;
if (!string.IsNullOrEmpty(InterfacesAssemblyName))
{
var interfaces = Assembly.Load(InterfacesAssemblyName).GetTypes().Where(type => type.IsInterface && type.IsPublic).ToList();
this._container.Register(
Classes
.FromAssemblyInDirectory(new AssemblyFilter("bin"))
.Where(x => x.GetInterfaces().Intersect(interfaces).Any())
.LifestyleTransient()
.WithService.DefaultInterfaces());
}
于 2012-07-25T14:05:19.467 回答