@@ -14,33 +14,37 @@ namespace RazorEngineCore
1414{
1515 public class RazorEngine : IRazorEngine
1616 {
17- public IRazorEngineCompiledTemplate < T > Compile < T > ( string content , Action < IRazorEngineCompilationOptionsBuilder > builderAction = null ) where T : IRazorEngineTemplate
17+ public IRazorEngineCompiledTemplate < T > Compile < T > ( string content , Action < IRazorEngineCompilationOptionsBuilder > builderAction = null , bool addPdb = false ) where T : IRazorEngineTemplate
1818 {
1919 IRazorEngineCompilationOptionsBuilder compilationOptionsBuilder = new RazorEngineCompilationOptionsBuilder ( ) ;
2020 compilationOptionsBuilder . AddAssemblyReference ( typeof ( T ) . Assembly ) ;
2121 compilationOptionsBuilder . Inherits ( typeof ( T ) ) ;
2222
2323 builderAction ? . Invoke ( compilationOptionsBuilder ) ;
24-
25- CompiledStreams streams = this . CreateAndCompileToStream ( content , compilationOptionsBuilder . Options ) ;
26- return new RazorEngineCompiledTemplate < T > ( streams . assembly , compilationOptionsBuilder . Options . TemplateNamespace ) ;
24+ if ( compilationOptionsBuilder . Options . GeneratePdbStream )
25+ {
26+ CompiledStreams streams = this . CreateAndCompileToStream ( content , compilationOptionsBuilder . Options ) ;
27+ return new RazorEngineCompiledTemplate < T > ( streams . assembly , compilationOptionsBuilder . Options . TemplateNamespace , streams . pdb ) ;
28+ }
29+ else
30+ {
31+ CompiledStreams streams = this . CreateAndCompileToStream ( content , compilationOptionsBuilder . Options ) ;
32+ return new RazorEngineCompiledTemplate < T > ( streams . assembly , compilationOptionsBuilder . Options . TemplateNamespace ) ;
33+ }
2734 }
2835
2936 public Task < IRazorEngineCompiledTemplate < T > > CompileAsync < T > ( string content , Action < IRazorEngineCompilationOptionsBuilder > builderAction = null ) where T : IRazorEngineTemplate
3037 {
3138 return Task . Factory . StartNew ( ( ) => this . Compile < T > ( content : content , builderAction : builderAction ) ) ;
3239 }
33- public IRazorEngineCompiledTemplate Compile ( string content , Action < IRazorEngineCompilationOptionsBuilder > builderAction = null )
34- {
35- return Compile ( content , builderAction , false ) ;
36- }
40+
3741 public IRazorEngineCompiledTemplate Compile ( string content , Action < IRazorEngineCompilationOptionsBuilder > builderAction = null , bool addPdb = false )
3842 {
3943 IRazorEngineCompilationOptionsBuilder compilationOptionsBuilder = new RazorEngineCompilationOptionsBuilder ( ) ;
4044 compilationOptionsBuilder . Inherits ( typeof ( RazorEngineTemplateBase ) ) ;
4145
4246 builderAction ? . Invoke ( compilationOptionsBuilder ) ;
43- if ( compilationOptionsBuilder . Options . GeneratePdbSteram )
47+ if ( compilationOptionsBuilder . Options . GeneratePdbStream )
4448 {
4549 CompiledStreams streams = this . CreateAndCompileToStream ( content , compilationOptionsBuilder . Options ) ;
4650 return new RazorEngineCompiledTemplate ( streams . assembly , compilationOptionsBuilder . Options . TemplateNamespace , streams . pdb ) ;
@@ -62,12 +66,12 @@ protected virtual CompiledStreams CreateAndCompileToStream(string templateSource
6266 {
6367 templateSource = this . WriteDirectives ( templateSource , options ) ;
6468 string projectPath = @"." ;
65- string fileName = Path . GetRandomFileName ( ) + ".cshtml" ;
66- if ( options . GeneratePdbSteram )
69+ string pdbfileName = Path . GetRandomFileName ( ) + ".cshtml" ;
70+ if ( options . GeneratePdbStream )
6771 {
6872 projectPath = Path . GetTempPath ( ) ;
6973 Directory . CreateDirectory ( projectPath ) ;
70- File . WriteAllText ( Path . Combine ( projectPath , fileName ) , templateSource ) ;
74+ File . WriteAllText ( Path . Combine ( projectPath , pdbfileName ) , templateSource ) ;
7175 }
7276
7377 RazorProjectEngine engine = RazorProjectEngine . Create (
@@ -119,7 +123,7 @@ protected virtual CompiledStreams CreateAndCompileToStream(string templateSource
119123 new CSharpCompilationOptions ( OutputKind . DynamicallyLinkedLibrary ) ) ;
120124 CompiledStreams streams = new CompiledStreams ( ) ;
121125 EmitResult emitResult ;
122- if ( options . GeneratePdbSteram )
126+ if ( options . GeneratePdbStream )
123127 emitResult = compilation . Emit ( streams . assembly , streams . pdb ) ;
124128 else
125129 emitResult = compilation . Emit ( streams . assembly ) ;
@@ -136,7 +140,7 @@ protected virtual CompiledStreams CreateAndCompileToStream(string templateSource
136140 }
137141
138142 streams . assembly . Position = 0 ;
139- if ( options . GeneratePdbSteram )
143+ if ( options . GeneratePdbStream )
140144 streams . pdb . Position = 0 ;
141145 return streams ;
142146 }
@@ -156,7 +160,7 @@ protected virtual string WriteDirectives(string content, RazorEngineCompilationO
156160 return stringBuilder . ToString ( ) ;
157161 }
158162
159- private class CompiledStreams
163+ protected class CompiledStreams
160164 {
161165 public CompiledStreams ( )
162166 {
0 commit comments