// Protected Methods protected void RaiseOnAssemblyResolve(AssemblySandbox loader) { Console.WriteLine("Raised 1"); if (OnAssemblyResolve == null) { return; } Console.WriteLine("Raised 2"); OnAssemblyResolve(loader, null); }
public Proxy(AssemblySandbox sandbox) : base(null) { _sandbox = sandbox; OnAssemblyResolve += (s, a) => { Console.WriteLine("I am in proxy"); RaiseOnAssemblyResolve(_sandbox); return(null); }; }
/* * public void DisplayRef(string title) * { * Console.WriteLine(" ==== " + title); * foreach (var i in Project.MetadataReferences) * Console.WriteLine(" MetadataReference {0}", i.Display); * foreach (var i in Project.ProjectReferences) * Console.WriteLine(" ProjectReferences {0}", i.ProjectId); * } */ /// <summary> /// Runs C# project compilation and fills <see cref="ProjectCompilation">ProjectCompilation</see> /// and <see cref="CompiledAssembly">CompiledAssembly</see>. /// </summary> /// <param name="sandbox"></param> /// <param name="dllFilename"></param> /// <returns></returns> public EmitResult CompileCSharpProject(AssemblySandbox sandbox, string dllFilename) { // must be public !!!!!!!!!! _projectCompilation = _cSharpProject.GetCompilationAsync().Result; _projectCompilation = _projectCompilation.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); _projectCompilation = _projectCompilation.WithReferences(_cSharpProject.MetadataReferences); foreach (var i in _projectCompilation.References) { Console.WriteLine(" linked with {0}", i.Display); } EmitResult result; var tmp = sandbox.EmitCompiledAssembly(_projectCompilation, out result, dllFilename); _compiledAssembly = tmp != null ? tmp.WrappedAssembly : null; return(result); }
/* * /// <summary> * /// Tworzy instancję obiektu * /// </summary> * public TranslationInfo() * { * } * Przykłady użycia * implement INotifyPropertyChanged * implement INotifyPropertyChanged_Passive * implement ToString ##Sandbox## ##CurrentAssembly## ##CurrentType## ##CurrentMethod## ##Compiled## ##TranslationAssemblies## ##NodeTranslators## ##ModuleProcessors## ##ClassTranslations## ##AssemblyTranslations## ##FieldTranslations## ##State## ##KnownConstsValues## ##Logs## * implement ToString Sandbox=##Sandbox##, CurrentAssembly=##CurrentAssembly##, CurrentType=##CurrentType##, CurrentMethod=##CurrentMethod##, Compiled=##Compiled##, TranslationAssemblies=##TranslationAssemblies##, NodeTranslators=##NodeTranslators##, ModuleProcessors=##ModuleProcessors##, ClassTranslations=##ClassTranslations##, AssemblyTranslations=##AssemblyTranslations##, FieldTranslations=##FieldTranslations##, State=##State##, KnownConstsValues=##KnownConstsValues##, Logs=##Logs## * implement equals Sandbox, CurrentAssembly, CurrentType, CurrentMethod, Compiled, TranslationAssemblies, NodeTranslators, ModuleProcessors, ClassTranslations, AssemblyTranslations, FieldTranslations, State, KnownConstsValues, Logs * implement equals * * implement equals *, ~exclude1, ~exclude2 */ #region Constructors /// <summary> /// Tworzy instancję obiektu /// <param name="sandbox"></param> /// </summary> public TranslationInfo(AssemblySandbox sandbox) { _sandbox = sandbox; }
/* /// <summary> /// Tworzy instancję obiektu /// </summary> public TranslationInfo() { } Przykłady użycia implement INotifyPropertyChanged implement INotifyPropertyChanged_Passive implement ToString ##Sandbox## ##CurrentAssembly## ##CurrentType## ##CurrentMethod## ##Compiled## ##TranslationAssemblies## ##NodeTranslators## ##ModuleProcessors## ##ClassTranslations## ##AssemblyTranslations## ##FieldTranslations## ##State## ##KnownConstsValues## ##Logs## implement ToString Sandbox=##Sandbox##, CurrentAssembly=##CurrentAssembly##, CurrentType=##CurrentType##, CurrentMethod=##CurrentMethod##, Compiled=##Compiled##, TranslationAssemblies=##TranslationAssemblies##, NodeTranslators=##NodeTranslators##, ModuleProcessors=##ModuleProcessors##, ClassTranslations=##ClassTranslations##, AssemblyTranslations=##AssemblyTranslations##, FieldTranslations=##FieldTranslations##, State=##State##, KnownConstsValues=##KnownConstsValues##, Logs=##Logs## implement equals Sandbox, CurrentAssembly, CurrentType, CurrentMethod, Compiled, TranslationAssemblies, NodeTranslators, ModuleProcessors, ClassTranslations, AssemblyTranslations, FieldTranslations, State, KnownConstsValues, Logs implement equals * implement equals *, ~exclude1, ~exclude2 */ #region Constructors /// <summary> /// Tworzy instancję obiektu /// <param name="sandbox"></param> /// </summary> public TranslationInfo(AssemblySandbox sandbox) { _sandbox = sandbox; }
/* public void DisplayRef(string title) { Console.WriteLine(" ==== " + title); foreach (var i in Project.MetadataReferences) Console.WriteLine(" MetadataReference {0}", i.Display); foreach (var i in Project.ProjectReferences) Console.WriteLine(" ProjectReferences {0}", i.ProjectId); } */ /// <summary> /// Runs C# project compilation and fills <see cref="ProjectCompilation">ProjectCompilation</see> /// and <see cref="CompiledAssembly">CompiledAssembly</see>. /// </summary> /// <param name="sandbox"></param> /// <param name="dllFilename"></param> /// <returns></returns> public EmitResult CompileCSharpProject(AssemblySandbox sandbox, string dllFilename) { // must be public !!!!!!!!!! _projectCompilation = _cSharpProject.GetCompilationAsync().Result; _projectCompilation = _projectCompilation.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); _projectCompilation = _projectCompilation.WithReferences(_cSharpProject.MetadataReferences); foreach (var i in _projectCompilation.References) Console.WriteLine(" linked with {0}", i.Display); EmitResult result; var tmp = sandbox.EmitCompiledAssembly(_projectCompilation, out result, dllFilename); _compiledAssembly = tmp != null ? tmp.WrappedAssembly : null; return result; }
public Proxy(AssemblySandbox sandbox) : base(null) { _sandbox = sandbox; OnAssemblyResolve += (s, a) => { Console.WriteLine("I am in proxy"); RaiseOnAssemblyResolve(_sandbox); return null; }; }
// Protected Methods protected void RaiseOnAssemblyResolve(AssemblySandbox loader) { Console.WriteLine("Raised 1"); if (OnAssemblyResolve == null) return; Console.WriteLine("Raised 2"); OnAssemblyResolve(loader, null); }