public void Add(IUntypedMessageDescriptor item, string name = "") { lock (lockObject) { var subDict = GetSubDict(item, true); subDict.Add(name, item); } }
public static Type GetArgumentType(this IUntypedMessageDescriptor item) { var genArgs = item.GetType().GenericTypeArguments; if (genArgs.Length != 1) { throw new ArgumentException("Invalid number of generic arguments", nameof(item)); } return(genArgs.First()); }
public bool TryAdd(IUntypedMessageDescriptor item, string name = "") { lock (lockObject) { var subDict = GetSubDict(item, true); if (!subDict.ContainsKey(name)) { subDict.Add(name, item); return(true); } return(false); } }
private Dictionary <string, IUntypedMessageDescriptor> GetSubDict(IUntypedMessageDescriptor item, bool addIfNotExists) { return(GetSubDict(item.GetArgumentType(), addIfNotExists)); }
public MessageDescriptorEntry(IUntypedMessageDescriptor messageDescriptor, string name) { this.MessageDescriptor = messageDescriptor; this.Name = name; }