internal static ICommsResolver FindResolver(OutboundComm comm) { // Resolve recipients ResolverEnvelope resolverEnvelope = ResolverEnvelope.FromXml(comm.ResolverDataXml); // Create the resolver via reflection of the static FromXml method Assembly assembly = typeof(ResolverEnvelope).Assembly; Type payloadType = assembly.GetType(resolverEnvelope.ResolverClass); var methodInfo = payloadType.GetMethod("FromXml", BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy); return((ICommsResolver)(methodInfo.Invoke(null, new object[] { resolverEnvelope.ResolverDataXml }))); }
public static OutboundComm Create(Person sender, Person from, Organization organization, ICommsResolver resolver, string recipientDataXml, CommTransmitterClass transmitterClass, string payloadXml, OutboundCommPriority priority) { string resolverDataXml = string.Empty; if (resolver != null) { resolverDataXml = new ResolverEnvelope(resolver).ToXml(); } string transmitterClassString = string.Empty; if (transmitterClass != CommTransmitterClass.Unknown) { transmitterClassString = "Swarmops.Utility.Communications." + transmitterClass; } return(Create(sender, from, organization, resolverDataXml, recipientDataXml, transmitterClassString, payloadXml, priority)); }