本文整理汇总了C#中System.Web.Razor.Parser.SyntaxTree.Block.Accept方法的典型用法代码示例。如果您正苦于以下问题:C# Block.Accept方法的具体用法?C# Block.Accept怎么用?C# Block.Accept使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.Razor.Parser.SyntaxTree.Block
的用法示例。
在下文中一共展示了Block.Accept方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindModelType
private static Type FindModelType(Block block, Type passedModelType)
{
var modelFinder = new ModelFinder();
block.Accept(modelFinder);
if (string.IsNullOrWhiteSpace(modelFinder.ModelTypeName))
{
return passedModelType ?? typeof(object);
}
Type modelType;
if (passedModelType != null)
{
modelType = passedModelType;
while (modelType != null)
{
if (modelType.FullName == modelFinder.ModelTypeName || modelType.Name == modelFinder.ModelTypeName)
{
return modelType;
}
modelType = modelType.BaseType;
}
throw new NotSupportedException(string.Format("Unable to discover CLR Type for model by the name of {0}. Ensure that the model passed to the view is assignable to the model declared in the view.", modelFinder.ModelTypeName));
}
modelType = Type.GetType(modelFinder.ModelTypeName);
if (modelType != null)
{
return modelType;
}
modelType = AppDomainAssemblyTypeScanner.Types.Where(t => t.FullName == modelFinder.ModelTypeName).FirstOrDefault();
if (modelType != null)
{
return modelType;
}
modelType = AppDomainAssemblyTypeScanner.Types.Where(t => t.Name == modelFinder.ModelTypeName).FirstOrDefault();
if (modelType != null)
{
return modelType;
}
throw new NotSupportedException(string.Format("Unable to discover CLR Type for model by the name of {0}. Try using a fully qualified type name and ensure that the assembly is added to the configuration file.", modelFinder.ModelTypeName));
}
示例2: Rewrite
public virtual Block Rewrite(Block input)
{
input.Accept(this);
Debug.Assert(_blocks.Count == 1);
return _blocks.Pop().Build();
}