将参数传递给温莎城堡中的UsingFactoryMethod

发布于 2024-10-27 07:40:19 字数 350 浏览 4 评论 0原文

如何将动态参数传递给 UsingFactoryMethod 注册?

例如,我想写这样的内容:

container.Register(
   Component.For<IFoo>()
        .UsingFactoryMethod(return DoSomethingAndReturnInstance(paremeter)));

我需要在运行时发送参数,这样:

container.Resolve<IFoo>(new { parameter = value });

怎么办?

How do I pass dynamic parameters to a UsingFactoryMethod registration?

For example, I want to write something like:

container.Register(
   Component.For<IFoo>()
        .UsingFactoryMethod(return DoSomethingAndReturnInstance(paremeter)));

I need the parameters to be sent at runtime, like this:

container.Resolve<IFoo>(new { parameter = value });

How can it be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温柔戏命师 2024-11-03 07:40:19

CreationContext.AdditionalParameters 具有您传递给 Resolve 的值

CreationContext.AdditionalParameters has the values you pass to Resolve

情仇皆在手 2024-11-03 07:40:19

你只需要使用

container.Register(
    Component.For<IFoo>()
        .UsingFactoryMethod((kernel, creationContext) =>
        {
            var parameter = creationContext.AdditionalArguments["parameter"];
            return DoSomethingAndReturnInstance(parameter);
        }));

You just have to use

container.Register(
    Component.For<IFoo>()
        .UsingFactoryMethod((kernel, creationContext) =>
        {
            var parameter = creationContext.AdditionalArguments["parameter"];
            return DoSomethingAndReturnInstance(parameter);
        }));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文