コード例 #1
0
ファイル: CSharpAdapter.cs プロジェクト: stjordanis/SharpLab
        public CSharpAdapter(
            IAssemblyReferenceCollector referenceCollector,
            IAssemblyDocumentationResolver documentationResolver,
            ICSharpTopLevelProgramSupport topLevelProgramSupport
            )
        {
            var referencedAssemblies = referenceCollector.SlowGetAllReferencedAssembliesRecursive(
                // Essential
                NetFrameworkRuntime.AssemblyOfValueTask,
                NetFrameworkRuntime.AssemblyOfValueTuple,
                NetFrameworkRuntime.AssemblyOfSpan,
                typeof(Binder).Assembly,

                // Runtime
                typeof(JitGenericAttribute).Assembly,

                // Requested
                typeof(XDocument).Assembly,   // System.Xml.Linq
                typeof(IDataReader).Assembly, // System.Data
                typeof(HttpUtility).Assembly  // System.Web
                ).ToImmutableList();

            var assemblyReferenceTaskSource = new AssemblyReferenceDiscoveryTaskSource();

            assemblyReferenceTaskSource.Complete(referencedAssemblies.Select(a => a.Location).ToImmutableList());
            AssemblyReferenceDiscoveryTask = assemblyReferenceTaskSource.Task;

            _references = referencedAssemblies
                          .Select(a => (MetadataReference)MetadataReference.CreateFromFile(a.Location, documentation: documentationResolver.GetDocumentation(a)))
                          .ToImmutableList();
            _topLevelProgramSupport = topLevelProgramSupport;
        }
コード例 #2
0
ファイル: SlowUpdate.cs プロジェクト: zsybupt/SharpLab
 public SlowUpdate(
     ICSharpTopLevelProgramSupport topLevelProgramSupport,
     ICompiler compiler,
     IReadOnlyCollection <IDecompiler> decompilers,
     IReadOnlyCollection <IAstTarget> astTargets,
     IExecutor executor,
     IExplainer explainer,
     RecyclableMemoryStreamManager memoryStreamManager
     )
 {
     _topLevelProgramSupport = topLevelProgramSupport;
     _compiler    = compiler;
     _decompilers = decompilers.ToDictionary(d => d.LanguageName);
     _astTargets  = astTargets
                    .SelectMany(t => t.SupportedLanguageNames.Select(n => (target: t, languageName: n)))
                    .ToDictionary(x => x.languageName, x => x.target);
     _executor            = executor;
     _memoryStreamManager = memoryStreamManager;
     _explainer           = explainer;
 }