如何自定义 Unity 依赖项注入以选择不同的构造函数作为扩展



我无法控制 Unity 容器依赖项的注册,并希望构建一个扩展,允许我选择与默认构造函数不同的构造函数。

那么,如何在如下所示的构建器策略中做到这一点呢?

public sealed class CustomBuilderStrategy : BuilderStrategy
{
    private readonly CustomBuildExtension extension;
    public CustomBuilderStrategy(CustomBuildExtension extension)
    {
        this.extension = extension;
    }

   public override void PreBuildUp(IBuilderContext context)
   {
   //Check if type has more than one constructor
   // select a random constructor and build the object. (I will write my own custom code then if this works.
       base.PreBuildUp(context);
   }
    public override void PostTearDown(IBuilderContext context)
    {
        base.PostTearDown(context);
    }
    public override void PostBuildUp(IBuilderContext context)
    {
        base.PostBuildUp(context);
    }
    public override void PreTearDown(IBuilderContext context)
    {
        base.PreTearDown(context);
    }
}

您可以在以下位置找到有关覆盖对象创建的一些数据:https://weblogs.asp.net/ricardoperes/unity-part-10-custom-build-strategies

若要获取有关给定类型的构造函数的信息,可以使用反射类型(类型(。GetConstructors((

最新更新