ITypeMetadataResolver CreateMetadataResolver() { m_CSharpMetadataFactoryMethod = (th, t) => new CSharpTypeBasedMetadata(TypeHandleSerializer, MemberConstrainer, th, t); var typeBasedMetadataFactory = new CSharpTypeBasedMetadataFactory(TypeHandleSerializer, m_CSharpMetadataFactoryMethod); var cachedTypeBasedMetadataFactory = new CachedTypeMetadataFactory(typeBasedMetadataFactory); m_GraphMetadataFactoryMethod = (th, t) => new GraphBasedMetadata(TypeHandleSerializer, th, t); var graphBasedMetadataFactory = new GraphBasedMetadataFactory(m_GraphMetadataFactoryMethod); var typeMetadataFactory = new TypeHandleMetadataFactory(cachedTypeBasedMetadataFactory, graphBasedMetadataFactory); return(new TypeMetadataResolver(typeMetadataFactory)); }
public CSharpTypeBasedMetadataFactory(ITypeHandleSerializer typeHandleSerializer, CSharpTypeBasedMetadata.FactoryMethod factoryMethod) { m_TypeHandleSerializer = typeHandleSerializer; m_FactoryMethod = factoryMethod; }