在Structure map中给出方法名称而不是具体的类名

时间:2012-01-27 12:45:31

标签: structuremap dynamic-class-creation

我有一个类ScreenParameter(实现IScreenParameter),它以windows形式存储所有表单值。当用户填充所有字段并单击按钮时,将启动此类。 Bussiness Layer中的类在其构造函数中等待IScreenParameter。我使用Structure map注入接口,需要在其上下文中创建它。我有一个创建和填充接口的方法(GetScreenParameters)。我想在配置Structure map时给出方法名而不是concreate类,并尝试了这个。

   ObjectFactory.Initialize(initialize =>
        {
            initialize.For<IScreenParameter>().Use(GetScreenParameters);

        });

但它不起作用。你能帮忙解决一下这个问题吗?

1 个答案:

答案 0 :(得分:0)

假设从包含Form方法的GetScreenParameters类的实例调用代码,您可以使用以下语法:

initialize.For<IScreenParameter>().Use(() => GetScreenParameters());

这将导致每次要获取IScreenParameter的实例时都会调用GetScreenParameters方法。如果您希望每次都能使用相同的实例将其注册为单身:

initialize.For<IScreenParameter>().Use(GetScreenParameters());