Skip to content

Commit 541e0ab

Browse files
committed
2 parents 30b1973 + 2a141f3 commit 541e0ab

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

README.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,25 @@ string result = template.Run(new
2929
Console.WriteLine(result);
3030
```
3131

32+
#### Strong typed model
33+
```cs
34+
string templateText = "Hello @Model.Name";
35+
36+
// yeah, heavy definition
37+
RazorEngineCompiledTemplate<RazorEngineTemplateBase<TestModel>> template = razorEngine.Compile<RazorEngineTemplateBase<TestModel>>(templateText);
38+
39+
string result = template.Run(instance =>
40+
{
41+
instance.Model = new TestModel()
42+
{
43+
Name = "Hello",
44+
Items = new[] {3, 1, 2}
45+
};
46+
});
47+
48+
Console.WriteLine(result);
49+
```
50+
3251
#### Save / Load compiled templates
3352
Most expensive task is to compile template, you should not compile template every time you need to run it
3453
```cs
@@ -48,6 +67,11 @@ RazorEngineCompiledTemplate template1 = RazorEngineCompiledTemplate.LoadFromFile
4867
RazorEngineCompiledTemplate template2 = RazorEngineCompiledTemplate.LoadFromStream(myStream);
4968
```
5069

70+
```cs
71+
RazorEngineCompiledTemplate<MyBase> template1 = RazorEngineCompiledTemplate<MyBase>.LoadFromFile<MyBase>("myTemplate.dll");
72+
RazorEngineCompiledTemplate<MyBase> template2 = RazorEngineCompiledTemplate<MyBase>.LoadFromStream<MyBase>(myStream);
73+
```
74+
5175
#### Simplest thread safe caching pattern
5276

5377
```cs
@@ -124,19 +148,36 @@ public class CustomModel : RazorEngineTemplateBase
124148
}
125149
```
126150

151+
### Referencing assemblies
152+
```cs
153+
RazorEngine razorEngine = new RazorEngine();
154+
RazorEngineCompiledTemplate compiledTemplate = razorEngine.Compile(templateText, builder =>
155+
{
156+
builder.AddAssemblyReferenceByName("System.Security"); // by name
157+
builder.AddAssemblyReference(typeof(System.IO.File)); // by type
158+
builder.AddAssemblyReference(Assembly.Load("source")); // by reference
159+
});
160+
161+
string result = compiledTemplate.Run(new { name = "Hello" });
162+
```
127163

128164

129165
#### Credits
130166
This package is inspired by [Simon Mourier SO post](https://stackoverflow.com/a/47756437/267736)
131167

132168

133169
#### Changelog
170+
* 2020.3.3
171+
* Model with generic type arguments compiling fix
172+
* 2020.3.2
173+
* External assembly referencing
174+
* Linq included by default
134175
* 2020.3.1
135176
* In attribute rendering fix #4
136177
* 2020.2.4
137-
* null values in model correct handling
138-
* null model fix
139-
* netstandard2 insted of netcore3.1
178+
* Null values in model correct handling
179+
* Null model fix
180+
* Netstandard2 insted of netcore3.1
140181
* 2020.2.3
141182
* Html attribute rendering fix
142183
* Html attribute rendering tests

0 commit comments

Comments
 (0)