Esempio n. 1
0
 public void Add(IUntypedMessageDescriptor item, string name = "")
 {
     lock (lockObject)
     {
         var subDict = GetSubDict(item, true);
         subDict.Add(name, item);
     }
 }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
 private Dictionary <string, IUntypedMessageDescriptor> GetSubDict(IUntypedMessageDescriptor item, bool addIfNotExists)
 {
     return(GetSubDict(item.GetArgumentType(), addIfNotExists));
 }
Esempio n. 5
0
 public MessageDescriptorEntry(IUntypedMessageDescriptor messageDescriptor, string name)
 {
     this.MessageDescriptor = messageDescriptor;
     this.Name = name;
 }