Unity - 将参数覆盖与正常分辨率混合
Unity - mix parameter override with normal resolution
如何在构造函数中仅指定一个参数,同时在 Unity 中正常注入其余参数?
例如
public MyContentStore(string contentPath, IFileSystem fileSystem)
{
}
我希望能够在运行时指定内容路径,但让文件系统由注册的类型自动注入。我似乎无法将 ParameterOverride 与 ResolvedParameter
混合使用
I want to be able to specify the content path at runtime
我想这意味着在解决过程中。它应该开箱即用,您不需要混合任何东西。只需注册您的类型而无需任何其他风格,然后在解析期间覆盖您想要的参数
IUnityContainer uc = new UnityContainer();
uc.RegisterType<IFileSystem, FileSystem>();
uc.RegisterType<MyContentStore>();
var ms = uc.Resolve<MyContentStore>(new ParameterOverride("contentPath", "123"));
另一方面,如果您想在注册期间指定参数,则不可能,因为您需要指定每个参数。
如何在构造函数中仅指定一个参数,同时在 Unity 中正常注入其余参数?
例如
public MyContentStore(string contentPath, IFileSystem fileSystem)
{
}
我希望能够在运行时指定内容路径,但让文件系统由注册的类型自动注入。我似乎无法将 ParameterOverride 与 ResolvedParameter
混合使用I want to be able to specify the content path at runtime
我想这意味着在解决过程中。它应该开箱即用,您不需要混合任何东西。只需注册您的类型而无需任何其他风格,然后在解析期间覆盖您想要的参数
IUnityContainer uc = new UnityContainer();
uc.RegisterType<IFileSystem, FileSystem>();
uc.RegisterType<MyContentStore>();
var ms = uc.Resolve<MyContentStore>(new ParameterOverride("contentPath", "123"));
另一方面,如果您想在注册期间指定参数,则不可能,因为您需要指定每个参数。