Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -0,0 +1,61 @@
//------------------------------------------------------------------------------
// <copyright file="SourceFileBuildProvider.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.IO;
using System.Collections;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Web.Hosting;
using System.Web.Util;
using System.Web.UI;
internal sealed class SourceFileBuildProvider: InternalBuildProvider {
private CodeSnippetCompileUnit _snippetCompileUnit;
private BuildProvider _owningBuildProvider;
public override CompilerType CodeCompilerType {
get {
return CompilationUtil.GetCompilerInfoFromVirtualPath(VirtualPathObject);
}
}
private void EnsureCodeCompileUnit() {
if (_snippetCompileUnit == null) {
// Read the contents of the file
string sourceString = Util.StringFromVirtualPath(VirtualPathObject);
_snippetCompileUnit = new CodeSnippetCompileUnit(sourceString);
_snippetCompileUnit.LinePragma = BaseCodeDomTreeGenerator.CreateCodeLinePragmaHelper(
VirtualPath, 1);
}
}
public override void GenerateCode(AssemblyBuilder assemblyBuilder) {
EnsureCodeCompileUnit();
assemblyBuilder.AddCodeCompileUnit(this, _snippetCompileUnit);
}
protected internal override CodeCompileUnit GetCodeCompileUnit(out IDictionary linePragmasTable) {
EnsureCodeCompileUnit();
linePragmasTable = new Hashtable();
linePragmasTable[1] = _snippetCompileUnit.LinePragma;
return _snippetCompileUnit;
}
// The owning build provider in case this course file is a partial compile-with code besides
internal BuildProvider OwningBuildProvider {
get { return _owningBuildProvider; }
set { _owningBuildProvider = value; }
}
}
}