Example #1
0
 protected override void AddTypeMapping(Assembly assembly, Type type, string proxyName)
 {
     AssemblyBasedKnownProxyTypesProvider.EarlyBoundTypeMap earlyBoundTypeMap = (AssemblyBasedKnownProxyTypesProvider.EarlyBoundTypeMap)null;
     AssemblyBasedKnownProxyTypesProvider._earlyBoundTypesMapByAssembly.TryGetValue(assembly, out earlyBoundTypeMap);
     if (earlyBoundTypeMap == null)
     {
         earlyBoundTypeMap = new AssemblyBasedKnownProxyTypesProvider.EarlyBoundTypeMap();
         AssemblyBasedKnownProxyTypesProvider._earlyBoundTypesMapByAssembly[assembly] = earlyBoundTypeMap;
     }
     if (earlyBoundTypeMap.ContainsKey(proxyName))
     {
         throw new ArgumentException(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "A proxy type with the name {0} has been defined by multiple types. Current type: {1}, Existing type: {2}", (object)proxyName, (object)type.AssemblyQualifiedName, (object)earlyBoundTypeMap[proxyName].AssemblyQualifiedName), proxyName);
     }
     earlyBoundTypeMap.Add(proxyName, type);
     AssemblyBasedKnownProxyTypesProvider.EarlyBoundNameMap earlyBoundNameMap = (AssemblyBasedKnownProxyTypesProvider.EarlyBoundNameMap)null;
     AssemblyBasedKnownProxyTypesProvider._earlyBoundNamesMapByAssembly.TryGetValue(assembly, out earlyBoundNameMap);
     if (earlyBoundNameMap == null)
     {
         earlyBoundNameMap = new AssemblyBasedKnownProxyTypesProvider.EarlyBoundNameMap();
         AssemblyBasedKnownProxyTypesProvider._earlyBoundNamesMapByAssembly[assembly] = earlyBoundNameMap;
     }
     if (earlyBoundNameMap.ContainsKey(type))
     {
         throw new ArgumentException(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "A proxy type with the name {0} has been defined by multiple types. Current type: {1}, Existing type: {2}", (object)proxyName, (object)type.AssemblyQualifiedName, (object)type.AssemblyQualifiedName), proxyName);
     }
     earlyBoundNameMap.Add(type, proxyName);
 }
Example #2
0
 public override Type GetTypeForName(string name, Assembly proxyTypesAssembly)
 {
     if (proxyTypesAssembly == (Assembly)null)
     {
         return((Type)null);
     }
     this.RegisterAssembly(proxyTypesAssembly);
     lock (KnownProxyTypesProvider.ThisLock)
     {
         AssemblyBasedKnownProxyTypesProvider.EarlyBoundTypeMap earlyBoundTypeMap = (AssemblyBasedKnownProxyTypesProvider.EarlyBoundTypeMap)null;
         if (AssemblyBasedKnownProxyTypesProvider._earlyBoundTypesMapByAssembly.TryGetValue(proxyTypesAssembly, out earlyBoundTypeMap))
         {
             if (earlyBoundTypeMap.ContainsKey(name))
             {
                 return(earlyBoundTypeMap[name]);
             }
         }
     }
     return((Type)null);
 }