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 })));
        }
Exemple #2
0
        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));
        }