Microsoft.Cci.MetadataHostEnvironment.LoadModule C# (CSharp) Method

LoadModule() public method

The module that matches the given reference, or a dummy module if no matching module can be found.
public LoadModule ( Microsoft.Cci.ModuleIdentity moduleIdentity ) : IModule
moduleIdentity Microsoft.Cci.ModuleIdentity
return IModule
    public virtual IModule LoadModule(ModuleIdentity moduleIdentity) {
      IUnit/*?*/ unit;
      lock (GlobalLock.LockingObject) {
        this.unitCache.TryGetValue(moduleIdentity, out unit);
      }
      IModule/*?*/ result;
      if (unit != null)
        result = unit as IModule;
      else {
        if (moduleIdentity.Location == "" || moduleIdentity.Location == "unknown://location") {
          result = Dummy.Module;
          lock (GlobalLock.LockingObject) {
            this.unitCache.Add(moduleIdentity, result);
          }
        } else {
          unit = this.LoadUnitFrom(moduleIdentity.Location);
          result = unit as IModule;
          if (result != null)
            lock (GlobalLock.LockingObject) {
              this.unitCache.Add(moduleIdentity, result);
              this.coreIdentities.Add(result.CoreAssemblySymbolicIdentity);
            }
        }
      }
      if (result == null) result = Dummy.Module;
      return result;
    }