public static void CreateDelegate(this NancyModule mod, BaseIntegrateModel model) { GenericMethodInfo = BindMethodInfo.MakeGenericMethod(model.DerivedType); Expression<Func<NancyModule, BaseIntegrateModel, object>> func = (o, m) => Convert.ChangeType(GenericMethodInfo.Invoke(BindMethodInfo.DeclaringType, new object[] { o }), m.DerivedType); _bindingMappings.Add(model.DerivedType, func.Compile()); }
public static dynamic BindModel(this NancyModule mod, BaseIntegrateModel model) { return _bindingMappings[model.DerivedType](mod, model); }