Ejemplo n.º 1
0
        private static ClientConfigItem GetConfig(Type contract)
        {
            var t = contract;
            ClientConfigItem item;

            if (_clientConfigItems.TryGetValue(t.TypeHandle, out item))
            {
                return(item);
            }

            var assemblyName = t.Assembly.FullName.Split(',')[0].Trim();
            var typeName     = t.FullName;
            var q            = ConfigItems.FirstOrDefault(c => (c.Type == typeName && c.Assembly == assemblyName));// || );

            if (q != null)
            {
                item = new ClientConfigItem
                {
                    Address  = q.Address,
                    Assembly = q.Assembly
                };
            }
            else
            {
                q = ConfigItems.FirstOrDefault(c =>
                                               c.Assembly == assemblyName && c.Type == string.Empty);
                if (q != null)
                {
                    item = new ClientConfigItem
                    {
                        BaseAddress = q.Address,
                        Assembly    = q.Assembly
                    };
                }
                else
                {
                    var temp = GetDefaultConfig();
                    item = new ClientConfigItem
                    {
                        BaseAddress = temp.BaseAddress,
                        Assembly    = temp.Assembly
                    };
                }
            }

            _clientConfigItems.TryAdd(t.TypeHandle, item);

            return(item);
        }
Ejemplo n.º 2
0
 private static ClientConfigItem GetDefaultConfig()
 {
     if (defaultConfig == null)
     {
         var item = ConfigItems.FirstOrDefault(c => c.Assembly == "*");
         if (item != null)
         {
             defaultConfig = new ClientConfigItem
             {
                 BaseAddress = item.Address,
                 Assembly    = item.Assembly
             }
         }
         ;
         else
         {
             defaultConfig = new ClientConfigItem();
         }
     }
     return(defaultConfig);
 }