internal static object InvokeLocalCrmDatabaseStaticMultiGenericMethod(LocalCrmDatabaseInfo info, string methodName, BindingFlags bindingFlags, object[] typesOrLogicalNames, params object[] parameters) { var types = new Type[typesOrLogicalNames.Length]; for (var i = 0; i < typesOrLogicalNames.Length; i++) { types[i] = typesOrLogicalNames[i] is string ?LocalCrmDatabase.GetType(info, (string)typesOrLogicalNames[i]) : (Type)typesOrLogicalNames[i]; } try { return(typeof(LocalCrmDatabase).GetMethods(bindingFlags | BindingFlags.Static) .FirstOrDefault(m => m.Name == methodName && m.IsGenericMethod) ?.MakeGenericMethod(types) .Invoke(null, parameters)); } catch (TargetInvocationException ex) { ThrowInnerException(ex); throw new Exception("Throw InnerException didn't throw exception"); } }
public Type GetType(string logicalName) { return(LocalCrmDatabase.GetType(Info, logicalName)); }
public EntityProperties For(LocalCrmDatabaseInfo info, Type type, string logicalName) { return(For(LocalCrmDatabase.GetType(info, logicalName))); }
internal static Entity InvokeToEntity(Entity entity, LocalCrmDatabaseInfo info) { return(InvokeToEntity(entity, LocalCrmDatabase.GetType(info, entity.LogicalName))); }