예제 #1
0
        public void SlowSetup(MirrorSharpOptions options)
        {
            options.EnableFSharp(o => {
                var assemblyOfObject     = typeof(object).Assembly;
                var referencedAssemblies = _referenceCollector.SlowGetAllReferencedAssembliesRecursive(
                    // Essential
                    assemblyOfObject,
                    NetFrameworkRuntime.AssemblyOfValueTask,
                    typeof(TaskExtensions).Assembly,
                    typeof(FSharpOption <>).Assembly,

                    // Runtime
                    typeof(JitGenericAttribute).Assembly,

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

                var referencedAssemblyPaths = referencedAssemblies.Select(a => a.Location).ToImmutableArray();
                if (assemblyOfObject.GetName().Name != "mscorlib")
                {
                    var mscorlibPath        = Path.Combine(Path.GetDirectoryName(assemblyOfObject.Location), "mscorlib.dll");
                    referencedAssemblyPaths = referencedAssemblyPaths.Add(mscorlibPath);
                }
                _referencedAssembliesTaskSource.Complete(referencedAssemblyPaths);
                o.AssemblyReferencePaths = referencedAssemblyPaths;
            });
        }
예제 #2
0
        public void SlowApplyTo(MirrorSharpOptions options)
        {
            options.EnableFSharp(o => o.AssemblyReferencePaths = o.AssemblyReferencePaths.AddRange(new[] {
                // Runtime
                typeof(JitGenericAttribute).Assembly.Location,

                // Requested
                typeof(IDataReader).Assembly.Location // System.Data
            }));
        }
예제 #3
0
        public void SlowSetup(MirrorSharpOptions options)
        {
            options.EnableFSharp(o => {
                var referencedAssemblies = ImmutableList.Create(
                    // Essential
                    typeof(object).Assembly,
                    NetFrameworkRuntime.AssemblyOfValueTask,
                    typeof(TaskExtensions).Assembly,
                    typeof(FSharpOption <>).Assembly,

                    // Runtime
                    typeof(JitGenericAttribute).Assembly,

                    // Requested
                    typeof(XDocument).Assembly,   // System.Xml.Linq
                    typeof(IDataReader).Assembly, // System.Data
                    typeof(HttpUtility).Assembly  // System.Web
                    );
                _referencedAssembliesTaskSource.Complete(referencedAssemblies);
                o.AssemblyReferencePaths = referencedAssemblies.Select(a => a.Location).ToImmutableArray();
            });
        }
예제 #4
0
 public void ApplyTo(MirrorSharpOptions options)
 {
     options.EnableFSharp();
 }