public override Object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) { if (value == null) { return(null); } var coll = new MessageAddressCollection(); if (value is String) { String strVal = value.ToString(); var ma = new MessageAddress(strVal); coll.Add(ma); return(coll); } else if (value is MessageAddress) { coll.Add(value as MessageAddress); return(coll); } else if (value is MessageAddressCollection) { return(value); } throw new MessagingException($"Invalid value '{value}' for MessageAddressCollectionConverter"); }
async Task <MessageAddressCollection> ResolveCollectionAsync(MessageAddressCollection coll, MessageResolver resolver) { var newColl = new MessageAddressCollection(); foreach (var addr in coll) { var na = new MessageAddress(await resolver.ResolveAsync(this, addr.Address), await resolver.ResolveAsync(this, addr.DisplayName)); newColl.Add(na); } return(newColl); }