public Task InitializeAsync(string replServiceProviderTypeName, string cultureName) { Debug.Assert(cultureName != null); using (var resetEvent = new ManualResetEventSlim(false)) { var uiThread = new Thread(() => { s_control = new Control(); s_control.CreateControl(); resetEvent.Set(); Application.Run(); }); uiThread.SetApartmentState(ApartmentState.STA); uiThread.IsBackground = true; uiThread.Start(); resetEvent.Wait(); } // TODO (tomat): we should share the copied files with the host var metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories, documentationCommentsCulture: new CultureInfo(cultureName)); var assemblyLoader = new InteractiveAssemblyLoader(metadataFileProvider); var replServiceProviderType = Type.GetType(replServiceProviderTypeName); var replServiceProvider = (ReplServiceProvider)Activator.CreateInstance(replServiceProviderType); var globals = new InteractiveScriptGlobals(Console.Out, replServiceProvider.ObjectFormatter); _serviceState = new ServiceState(assemblyLoader, metadataFileProvider, replServiceProvider, globals); return(Task.CompletedTask); }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); _hostObject = new InteractiveHostObject(); var initialState = new EvaluationState( scriptState: null, scriptOptions: ScriptOptions.Default, sourceSearchPaths: ImmutableArray <string> .Empty, referenceSearchPaths: ImmutableArray <string> .Empty, workingDirectory: Directory.GetCurrentDirectory()); _lastTask = Task.FromResult(initialState); Console.OutputEncoding = Encoding.UTF8; // We want to be sure to delete the shadow-copied files when the process goes away. Frankly // there's nothing we can do if the process is forcefully quit or goes down in a completely // uncontrolled manner (like a stack overflow). When the process goes down in a controlled // manned, we should generally expect this event to be called. AppDomain.CurrentDomain.ProcessExit += HandleProcessExit; }
public Task <InteractiveHostPlatformInfo.Data> InitializeAsync( string replServiceProviderTypeName, string cultureName ) { // TODO (tomat): we should share the copied files with the host var metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories, documentationCommentsCulture: new CultureInfo(cultureName) ); var assemblyLoader = new InteractiveAssemblyLoader(metadataFileProvider); var replServiceProviderType = Type.GetType(replServiceProviderTypeName); var replServiceProvider = (ReplServiceProvider)Activator.CreateInstance( replServiceProviderType ); var globals = new InteractiveScriptGlobals( Console.Out, replServiceProvider.ObjectFormatter ); _serviceState = new ServiceState( assemblyLoader, metadataFileProvider, replServiceProvider, globals ); return(Task.FromResult(s_currentPlatformInfo.Serialize())); }
public ServiceState(InteractiveAssemblyLoader assemblyLoader, MetadataShadowCopyProvider metadataFileProvider, ReplServiceProvider replServiceProvider, InteractiveScriptGlobals globals) { AssemblyLoader = assemblyLoader; MetadataFileProvider = metadataFileProvider; ReplServiceProvider = replServiceProvider; Globals = globals; }
public ShadowCopyReference(MetadataShadowCopyProvider provider, string originalPath, MetadataReferenceProperties properties) : base(properties, originalPath) { Debug.Assert(originalPath != null); Debug.Assert(provider != null); _provider = provider; }
public ShadowCopyReference(MetadataShadowCopyProvider provider, string originalPath, MetadataReferenceProperties properties) : base(properties, originalPath) { Debug.Assert(originalPath != null); Debug.Assert(provider != null); _provider = provider; }
public ShadowCopyReference( MetadataShadowCopyProvider provider, string originalPath, MetadataReferenceProperties properties ) : base(properties, originalPath) { _provider = provider; }
public InteractiveAssemblyLoader(MetadataShadowCopyProvider shadowCopyProvider = null) { _shadowCopyProvider = shadowCopyProvider; _assembliesLoadedFromLocationByFullPath = new Dictionary<string, AssemblyAndLocation>(); _assembliesLoadedFromLocation = new Dictionary<Assembly, LoadedAssembly>(); _loadedAssembliesBySimpleName = new Dictionary<string, List<Assembly>>(AssemblyIdentityComparer.SimpleNameComparer); _dependenciesWithLocationBySimpleName = new Dictionary<string, List<AssemblyIdentityAndLocation>>(); _runtimeAssemblyLoader = AssemblyLoaderImpl.Create(this); }
public InteractiveAssemblyLoader(MetadataShadowCopyProvider shadowCopyProvider = null) { _shadowCopyProvider = shadowCopyProvider; _assembliesLoadedFromLocationByFullPath = new Dictionary <string, AssemblyAndLocation>(); _assembliesLoadedFromLocation = new Dictionary <Assembly, LoadedAssembly>(); _loadedAssembliesBySimpleName = new Dictionary <string, List <LoadedAssemblyInfo> >(AssemblyIdentityComparer.SimpleNameComparer); _dependenciesWithLocationBySimpleName = new Dictionary <string, List <AssemblyIdentityAndLocation> >(); _runtimeAssemblyLoader = new DesktopAssemblyLoader(this); }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider(); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _sourceSearchPaths = DefaultSourceSearchPaths; _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider(); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _sourceSearchPaths = DefaultSourceSearchPaths; _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); }
public void Initialize(Type replServiceProviderType, string cultureName) { Contract.ThrowIfFalse(_serviceState == null, "Service already initialized"); // TODO (tomat): we should share the copied files with the host var metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories, documentationCommentsCulture: new CultureInfo(cultureName)); var assemblyLoader = new InteractiveAssemblyLoader(metadataFileProvider); var replServiceProvider = (ReplServiceProvider)Activator.CreateInstance(replServiceProviderType); var globals = new InteractiveScriptGlobals(Console.Out, replServiceProvider.ObjectFormatter); _serviceState = new ServiceState(assemblyLoader, metadataFileProvider, replServiceProvider, globals); }
public void Initialize(Type replServiceProviderType, string cultureName) { Debug.Assert(replServiceProviderType != null); Debug.Assert(cultureName != null); Debug.Assert(_metadataFileProvider == null); Debug.Assert(_assemblyLoader == null); Debug.Assert(_replServiceProvider == null); // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories, documentationCommentsCulture: new CultureInfo(cultureName)); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _replServiceProvider = (ReplServiceProvider)Activator.CreateInstance(replServiceProviderType); }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); // We want to be sure to delete the shadow-copied files when the process goes away. Frankly // there's nothing we can do if the process is forcefully quit or goes down in a completely // uncontrolled manner (like a stack overflow). When the process goes down in a controlled // manned, we should generally expect this event to be called. AppDomain.CurrentDomain.ProcessExit += HandleProcessExit; }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories); _options = ScriptOptions.Default.WithSearchPaths(DefaultReferenceSearchPaths); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _sourceSearchPaths = DefaultSourceSearchPaths; _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); // We want to be sure to delete the shadow-copied files when the process goes away. Frankly // there's nothing we can do if the process is forcefully quit or goes down in a completely // uncontrolled manner (like a stack overflow). When the process goes down in a controlled // manned, we should generally expect this event to be called. AppDomain.CurrentDomain.ProcessExit += HandleProcessExit; }
public AssemblyLoader(MetadataShadowCopyProvider shadowCopyProvider = null) { this.shadowCopyProvider = shadowCopyProvider; Assembly mscorlib = typeof(object).Assembly; loadedAssembliesByPath = new Dictionary<string, Assembly>(StringComparer.OrdinalIgnoreCase) { { mscorlib.Location, mscorlib } }; loadedAssemblies = new Dictionary<Assembly, LoadedAssembly>() { { mscorlib, new LoadedAssembly { LoadedExplicitly = true, OriginalPath = mscorlib.Location } } }; loadedAssembliesBySimpleName = new Dictionary<string, List<Assembly>>(StringComparer.OrdinalIgnoreCase) { { "mscorlib", new List<Assembly> { mscorlib } } }; identitiesBySimpleName = new Dictionary<string, List<AssemblyIdentity>>(); AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolve); }
public MetadataShadowCopyProviderTests() { _provider = new MetadataShadowCopyProvider(TempRoot.Root); }
public MetadataShadowCopyProviderTests() { _provider = CreateProvider(CultureInfo.InvariantCulture); }
public MetadataShadowCopyProviderTests() { _provider = new MetadataShadowCopyProvider(TempRoot.Root); }
public InteractiveAssemblyLoader(MetadataShadowCopyProvider shadowCopyProvider = null) { _shadowCopyProvider = shadowCopyProvider; Assembly mscorlib = typeof(object).GetTypeInfo().Assembly; _assembliesLoadedFromLocationByFullPath = new Dictionary<string, AssemblyAndLocation>(); _assembliesLoadedFromLocation = new Dictionary<Assembly, LoadedAssembly>(); _loadedAssembliesBySimpleName = new Dictionary<string, List<Assembly>>(AssemblyIdentityComparer.SimpleNameComparer); _dependenciesWithLocationBySimpleName = new Dictionary<string, List<AssemblyIdentityAndLocation>>(); CorLightup.Desktop.AddAssemblyResolveHandler(AssemblyResolve); }
public MetadataShadowCopyProviderTests() { _provider = CreateProvider(CultureInfo.InvariantCulture); }
public MetadataShadowCopyProviderTests() { _provider = new MetadataShadowCopyProvider(TempRoot.Root, s_systemNoShadowCopyDirectories); }
public Service() { // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _formattingOptions = new ObjectFormattingOptions( memberFormat: MemberDisplayFormat.Inline, quoteStrings: true, useHexadecimalNumbers: false, maxOutputLength: 200, memberIndentation: " "); _hostObject = new InteractiveHostObject(); var initialState = new EvaluationState( scriptState: null, scriptOptions: ScriptOptions.Default, sourceSearchPaths: ImmutableArray<string>.Empty, referenceSearchPaths: ImmutableArray<string>.Empty, workingDirectory: Directory.GetCurrentDirectory()); _lastTask = Task.FromResult(initialState); Console.OutputEncoding = Encoding.UTF8; // We want to be sure to delete the shadow-copied files when the process goes away. Frankly // there's nothing we can do if the process is forcefully quit or goes down in a completely // uncontrolled manner (like a stack overflow). When the process goes down in a controlled // manned, we should generally expect this event to be called. AppDomain.CurrentDomain.ProcessExit += HandleProcessExit; }
public void Initialize(Type replServiceProviderType, string cultureName) { Debug.Assert(replServiceProviderType != null); Debug.Assert(cultureName != null); Debug.Assert(_metadataFileProvider == null); Debug.Assert(_assemblyLoader == null); Debug.Assert(_replServiceProvider == null); // TODO (tomat): we should share the copied files with the host _metadataFileProvider = new MetadataShadowCopyProvider( Path.Combine(Path.GetTempPath(), "InteractiveHostShadow"), noShadowCopyDirectories: s_systemNoShadowCopyDirectories, documentationCommentsCulture: new CultureInfo(cultureName)); _assemblyLoader = new InteractiveAssemblyLoader(_metadataFileProvider); _replServiceProvider = (ReplServiceProvider)Activator.CreateInstance(replServiceProviderType); _globals = new InteractiveScriptGlobals(Console.Out, _replServiceProvider.ObjectFormatter); }
public MetadataShadowCopyProviderTests() { _provider = new MetadataShadowCopyProvider(TempRoot.Root, s_systemNoShadowCopyDirectories); }