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

MetadataHostEnvironment() protected method

Allocates an object that provides an abstraction over the application hosting compilers based on this framework.
protected MetadataHostEnvironment ( INameTable nameTable, IInternFactory factory, byte pointerSize, IEnumerable searchPaths, bool searchInGAC ) : System
nameTable INameTable /// A collection of IName instances that represent names that are commonly used during compilation. /// This is a provided as a parameter to the host environment in order to allow more than one host /// environment to co-exist while agreeing on how to map strings to IName instances. ///
factory IInternFactory /// The intern factory to use when generating keys. When comparing two or more assemblies using /// TypeHelper, MemberHelper, etc. it is necessary to make the hosts use the same intern factory. ///
pointerSize byte The size of a pointer on the runtime that is the target of the metadata units to be loaded /// into this metadta host. This parameter only matters if the host application wants to work out what the exact layout /// of a struct will be on the target runtime. The framework uses this value in methods such as TypeHelper.SizeOfType and /// TypeHelper.TypeAlignment. If the host application does not care about the pointer size it can provide 0 as the value /// of this parameter. In that case, the first reference to IMetadataHost.PointerSize will probe the list of loaded assemblies /// to find an assembly that either requires 32 bit pointers or 64 bit pointers. If no such assembly is found, the default is 32 bit pointers. ///
searchPaths IEnumerable /// A collection of strings that are interpreted as valid paths which are used to search for units. May be null. ///
searchInGAC bool /// Whether the GAC (Global Assembly Cache) should be searched when resolving references. ///
return System
    protected MetadataHostEnvironment(INameTable nameTable, IInternFactory factory, byte pointerSize, IEnumerable<string>/*?*/ searchPaths, bool searchInGAC) {
      Contract.Requires(nameTable != null);
      Contract.Requires(factory != null);
      Contract.Requires(pointerSize == 0 || pointerSize == 4 || pointerSize == 8);

      this.nameTable = nameTable;
      this.internFactory = factory;
      this.pointerSize = pointerSize;
      this.libPaths = searchPaths == null ? new List<string>(0) : new List<string>(searchPaths);
      this.SearchInGAC = searchInGAC;
    }