我有这样的视图模型:
public ViewModelSample(MyClass a)
{
}
我试图通过以下方法解决此问题:
var myClassObj = new MyClass();
var vm = IocManager.Resolve<T>(myClassObj); // where args = object of MyClass
签名IIocResolver . T Resolve<T> (object argumentsAsAnonymousType);
如果我要从System.Activator
执行此操作,那么我会打电话给return (T)Activator.CreateInstance(typeof(T), myClassObj);
,它可以正常工作。
此外,如果ViewModelSample
仅具有无参数构造函数,那么它确实可以解决它。
我遇到了例外:
缺少依赖项。零件ViewModels.ViewModelSample有一个依赖Dto.MyClass,可以无法解决。确保依赖项已正确注册到容器作为服务,还是作为内联参数提供。
MyClass
是一个简单的DTO,因此它不继承ITransientDependency
。此外,我想在运行时分配此值。
我该如何解决?
签名
IIocResolver . T Resolve<T> (object argumentsAsAnonymousType);
在这种情况下,因为new { a = myClassObj }
是您的参数名称,所以为a
。
var vm = IocManager.Resolve<ViewModelSample>(new { a = myClassObj });
匿名类型:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types