c# - Creating Func body dynamically -
see sample below:
var factorytype = typeof(func<>).makegenerictype(sometype);  container.registerperrequest(sometype, null, sometype);  func<object> factorydelegate = () => container.getinstance(sometype, null); //this returns object, hence delegate type func<object>, required type func<someclass>  container.registerinstance(factorytype, null, factorydelegate); //not sure how create factory delegate   i want create function body instance of sometype created using di container. 
the idea configure di container can inject func<someclass> other classes.
how can done?
just cast result:
func<sometype> factorydelegate = () => container.getinstance(typeof(sometype), null) sometype;   or create method (extension better):
static func<t> resolvetypedelegate<t>() t : class {     return () => resolvetype<t>(); }  static t resolvetype<t>() t : class {     return container.getinstance(typeof(sometype), null) t; }   usage:
func<sometype> factorydelegate = resolvetypedelegate<sometype>();      
Comments
Post a Comment