Autofac自动生成工厂Func<T>; 我甚至可以传递参数.
public class MyClass
{
public MyClass(Func<A> a, Func<int, B> b)
{
var _a = a();
var _b = b(1);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以和Ninject一样吗?如果没有,我可以申请哪种解决方法?
谢谢.
更新:
刚发现这篇帖子,似乎答案是否定的:
与此不完全相同:
如何使用Ninject注入依赖项,其中实例从json反序列化
答案是,您反序列化的数据类无论如何都不需要服务.有没有办法使用依赖注入与派生的类JsonConverter?例如,如果你有这个:
[JsonConverter(typeof(MyCustomConverter))]
public class Foo
{
public string SomeProp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和:
public class MyCustomConverter : JsonConverter
{
private readonly IMyService myService;
public MyCustomConverter(IMyService _myService)
{
myService = _myService;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var bar = myService.SomeFunctionThatMightEffectDeserialization();
//...
}
}
Run Code Online (Sandbox Code Playgroud)
反正有没有想到JSON.Net实例化如何让它MyCustomConverter让Ninject做它的事情?
编辑这不是Foo像建议的欺骗那样注入服务.这只是注入,MyCustomConverter以便它可以反序列化Foo.