如何使用IoC作为空构造函数

时间:2016-06-28 06:50:23

标签: c# inversion-of-control structuremap

我使用3方库,我想调用空构造函数的自定义构造函数扩展。

我使用的是结构图。

有可能吗?

三方图书馆的源代码:

  public static T InstantiateType<T>(Type type)
            {
                if (type == null)
                {
                    throw new ArgumentNullException("type", "Cannot instantiate null");
                }
                ConstructorInfo ci = type.GetConstructor(Type.EmptyTypes);
                if (ci == null)
                {
                    throw new ArgumentException("Cannot instantiate type which has no empty constructor", type.Name);
                }
                return (T) ci.Invoke(new object[0]);
            }

我试过

 x.For<IJobFactory>().Use<StructureMapJobFactory>();
                x.ForConcreteType<StructureMapJobFactory>().Configure.SelectConstructor(() => new StructureMapJobFactory(container.GetInstance<IContext>()));

1 个答案:

答案 0 :(得分:1)

你可以用这个:

public static T InstantiateType<T>() where T : new()
{
    return new T();
}