示例#1
0
 public ClassMetadata(Stream byteStream, MetadataCache <ModuleMetadata> moduleCache) : base(byteStream)
 {
     Contract.Ensures(moduleCache != null);
     Name      = byteStream.DeserializeString();
     IsGeneric = byteStream.DeserializeBool();
     ModuleId  = byteStream.DeserializeUint32();
     Module    = moduleCache[ModuleId];
 }
 public MetadataDeserializer(
     MetadataCache <MethodMetadata> methodCache,
     MetadataCache <ClassMetadata> classCache,
     MetadataCache <ModuleMetadata> moduleCache,
     MetadataCache <AssemblyMetadata> assemblyCache,
     ISourceLocatorFactory sourceLocatorFactory)
 {
     _methodCache          = methodCache;
     _classCache           = classCache;
     _moduleCache          = moduleCache;
     _assemblyCache        = assemblyCache;
     _sourceLocatorFactory = sourceLocatorFactory;
 }
示例#3
0
        public MethodMetadata(Stream byteStream, MetadataCache <ClassMetadata> classCache,
                              ISourceLocatorFactory sourceLocatorFactory)
            : base(byteStream)
        {
            Contract.Ensures(classCache != null);
            Contract.Ensures(sourceLocatorFactory != null);
            _sourceLocatorFactory = sourceLocatorFactory;

            Name = byteStream.DeserializeString();

            uint paramCount = byteStream.DeserializeUint32();

            Parameters = new string[paramCount];
            for (int i = 0; i < paramCount; i++)
            {
                string param = byteStream.DeserializeString();
                Parameters[i] = param;
            }

            ClassId = byteStream.DeserializeUint32();
            Class   = classCache[ClassId];
        }
示例#4
0
 public ModuleMetadata(Stream byteStream, MetadataCache <AssemblyMetadata> assemblyCache) : base(byteStream)
 {
     FilePath   = byteStream.DeserializeString();
     AssemblyId = byteStream.DeserializeUint32();
     Assembly   = assemblyCache[AssemblyId];
 }