예제 #1
0
        public OOPTagHelperResolverTest()
        {
            HostProject_For_2_0 = new HostProject("Test.csproj", FallbackRazorConfiguration.MVC_2_0);
            HostProject_For_NonSerializableConfiguration = new HostProject(
                "Test.csproj",
                new ProjectSystemRazorConfiguration(RazorLanguageVersion.Version_2_1, "Blazor-0.1", Array.Empty <RazorExtension>()));

            CustomFactories = new Lazy <IProjectEngineFactory, ICustomProjectEngineFactoryMetadata>[]
            {
                new Lazy <IProjectEngineFactory, ICustomProjectEngineFactoryMetadata>(
                    () => new LegacyProjectEngineFactory_2_0(),
                    typeof(LegacyProjectEngineFactory_2_0).GetCustomAttribute <ExportCustomProjectEngineFactoryAttribute>()),

                // We don't really use this factory, we just use it to ensure that the call is going to go out of process.
                new Lazy <IProjectEngineFactory, ICustomProjectEngineFactoryMetadata>(
                    () => new LegacyProjectEngineFactory_2_1(),
                    new ExportCustomProjectEngineFactoryAttribute("Blazor-0.1")
                {
                    SupportsSerialization = false,
                }),
            };

            FallbackFactory = new FallbackProjectEngineFactory();

            Workspace = new AdhocWorkspace();

            var info = ProjectInfo.Create(ProjectId.CreateNewId("Test"), VersionStamp.Default, "Test", "Test", LanguageNames.CSharp, filePath: "Test.csproj");

            WorkspaceProject = Workspace.CurrentSolution.AddProject(info).GetProject(info.Id);

            ErrorReporter  = new DefaultErrorReporter();
            ProjectManager = new TestProjectSnapshotManager(Workspace);
            EngineFactory  = new DefaultProjectEngineFactoryService(ProjectManager, FallbackFactory, CustomFactories);
        }
        private static IScript compile(Context cx, string source)
        {
            int [] linep    = new int [] { 0 };
            string filename = Context.GetSourcePositionFromStack(linep);

            if (filename == null)
            {
                filename  = "<Script object>";
                linep [0] = 1;
            }
            ErrorReporter reporter;

            reporter = DefaultErrorReporter.ForEval(cx.ErrorReporter);
            return(cx.CompileString(source, null, reporter, filename, linep [0], (object)null));
        }