我正在使用 Castle Windosr 容器。我希望能够在运行时指定一些构造函数依赖项,这显然可以通过使用带有字典的 Resolve 重载来完成,一切都很好。但是,如果我想为根的依赖项指定运行时依赖项,那么我迷路了,目前我已经通过显式创建每个项并将其嵌入来解决。本质上它是一个装饰器场景,我想获得一个实例decator,同时在运行时为正在装饰的对象提供依赖项。有任何想法吗?我宁愿不必做我在下面做的事情,也不想让 decarator 构造函数填充下面的对象,因为有时依赖项会不一样。
public static IActivity GetActivityFromIoC(string key, Message message, Audit audit)
{
IActivity activity = IoC.Resolve<IActivity>(key, new Dictionary<
string, object>(){
{ "message", message }
});
IActivity auditingActivity = IoC.Resolve<IActivity>("auditing.activity", new Dictionary<
string, object>(){
{ "activity", activity },
{ "message", message },
{ "audit", audit }
});
return auditingActivity;
}