本文整理汇总了C#中System.Web.Razor.Generator.CodeGeneratorContext.SetExpressionRenderingMode方法的典型用法代码示例。如果您正苦于以下问题:C# CodeGeneratorContext.SetExpressionRenderingMode方法的具体用法?C# CodeGeneratorContext.SetExpressionRenderingMode怎么用?C# CodeGeneratorContext.SetExpressionRenderingMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.Razor.Generator.CodeGeneratorContext
的用法示例。
在下文中一共展示了CodeGeneratorContext.SetExpressionRenderingMode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateCode
public override void GenerateCode (Span target, CodeGeneratorContext context)
{
if (context.Host.DesignTimeMode)
return;
ExpressionRenderingMode oldMode = context.GetExpressionRenderingMode ();
var sb = new StringBuilder ();
sb.Append (", Tuple.Create<string,object,bool> (");
sb.WriteCStyleStringLiteral (Prefix.Value);
sb.Append (", ");
if (ValueGenerator != null) {
context.SetExpressionRenderingMode (ExpressionRenderingMode.InjectCode);
} else {
sb.WriteCStyleStringLiteral (Value);
sb.Append (", true)");
}
context.BufferStatementFragment (sb.ToString ());
if (ValueGenerator != null) {
ValueGenerator.Value.GenerateCode (target, context);
context.FlushBufferedStatement ();
context.SetExpressionRenderingMode (oldMode);
context.AddStatement (", false)");
} else {
context.FlushBufferedStatement ();
}
}
示例2: GenerateStartBlockCode
public override void GenerateStartBlockCode (Block target, CodeGeneratorContext context)
{
if (context.Host.DesignTimeMode)
return;
Block child = target.Children.Where (n => n.IsBlock).Cast<Block> ().FirstOrDefault ();
isExpression = child != null && child.Type == BlockType.Expression;
var sb = new StringBuilder ();
sb.Append (", Tuple.Create<string,object,bool> (");
sb.WriteCStyleStringLiteral (Prefix.Value);
sb.Append (", ");
if (isExpression) {
oldRenderingMode = context.GetExpressionRenderingMode ();
context.SetExpressionRenderingMode (ExpressionRenderingMode.InjectCode);
} else {
sb.AppendFormat (
"new {0} ({1} => {{",
context.Host.GeneratedClassContext.TemplateTypeName,
ValueWriterName);
}
context.MarkEndOfGeneratedCode ();
context.BufferStatementFragment (sb.ToString ());
oldTargetWriter = context.TargetWriterName;
context.TargetWriterName = ValueWriterName;
}
开发者ID:pabloescribanoloza,项目名称:monodevelop,代码行数:29,代码来源:PreprocessedDynamicAttributeBlockCodeGenerator.cs
示例3: GenerateEndBlockCode
public override void GenerateEndBlockCode (Block target, CodeGeneratorContext context)
{
if (context.Host.DesignTimeMode)
return;
var sb = new StringBuilder ();
if (isExpression) {
sb.Append (", false)");
context.SetExpressionRenderingMode (oldRenderingMode);
} else {
sb.Append ("}), false)");
}
context.AddStatement (sb.ToString ());
context.TargetWriterName = oldTargetWriter;
}
开发者ID:pabloescribanoloza,项目名称:monodevelop,代码行数:16,代码来源:PreprocessedDynamicAttributeBlockCodeGenerator.cs