public static AgentManager GetAgentManagerInstance(AgentInfo agentInfo) { string text; Exception ex; return(FactoryTable.LoadAssemblyAndCreateInstance <AgentManager>(agentInfo, delegate(Assembly assembly) { AgentManager agentManager = null; Type baseDeliveryAgentFactoryType = FactoryTable.GetBaseDeliveryAgentFactoryType(assembly.GetType(agentInfo.FactoryTypeName)); if (baseDeliveryAgentFactoryType != null) { Type[] genericArguments = baseDeliveryAgentFactoryType.GetGenericArguments(); if (genericArguments.Length == 1 && typeof(AgentManager).IsAssignableFrom(genericArguments[0])) { agentManager = (AgentManager)assembly.CreateInstance(genericArguments[0].FullName); agentManager.AgentName = agentInfo.AgentName; } } return agentManager; }, out text, out ex)); }
private static AgentFactory CreateAgentFactory(AgentInfo agentInfo) { string assembly2; Exception ex; AgentFactory agentFactory = FactoryTable.LoadAssemblyAndCreateInstance <AgentFactory>(agentInfo, (Assembly assembly) => (AgentFactory)assembly.CreateInstance(agentInfo.FactoryTypeName), out assembly2, out ex); if (agentFactory == null) { ExEventLog.EventTuple tuple = EdgeExtensibilityEventLogConstants.Tuple_MExAgentFactoryCreationFailure; if (ex is InvalidCastException) { tuple = EdgeExtensibilityEventLogConstants.Tuple_MExAgentVersionMismatch; } ExchangeConfigurationException ex2 = new ExchangeConfigurationException(MExRuntimeStrings.InvalidTypeInConfiguration(agentInfo.FactoryTypeName, assembly2, (ex == null) ? "type not found" : ex.Message), ex); MExDiagnostics.EventLog.LogEvent(tuple, null, new object[] { agentInfo.AgentName, ex2.Message }); throw ex2; } return(agentFactory); }