本文整理汇总了C#中TemplateContext.ProcessType方法的典型用法代码示例。如果您正苦于以下问题:C# TemplateContext.ProcessType方法的具体用法?C# TemplateContext.ProcessType怎么用?C# TemplateContext.ProcessType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TemplateContext
的用法示例。
在下文中一共展示了TemplateContext.ProcessType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Modify
public override void Modify(object templateInstance, MemberInfo info, TemplateContext ctx)
{
base.Modify(templateInstance, info, ctx);
var propertyInfo = info as PropertyInfo;
var t = ctx.ProcessType(propertyInfo.PropertyType);
if (t != null)
{
ctx.CurrentProperty.Type = new CodeTypeReference(t);
}
}
示例2: Modify
public override void Modify(object templateInstance, MemberInfo info, TemplateContext ctx)
{
base.Modify(templateInstance, info, ctx);
var methodInfo = info as MethodInfo;
var t = ctx.ProcessType(methodInfo.ReturnType);
if (t != null)
{
ctx.CurrentMethod.ReturnType = new CodeTypeReference(t);
}
var prms = methodInfo.GetParameters();
for (int index = 0; index < prms.Length; index++)
{
var parameter = prms[index];
var templateParameter = ctx.CurrentMethod.Parameters[index];
var x = ctx.ProcessType(parameter.ParameterType);
if (x != null)
{
templateParameter.Type = new CodeTypeReference(x);
}
}
var isOverried = false;
if (!ctx.IsDesignerFile && ctx.CurrentMember.Attributes != MemberAttributes.Final && ctx.CurrentAttribute.Location == TemplateLocation.Both)
{
ctx.CurrentMethod.Attributes |= MemberAttributes.Override;
isOverried = true;
}
if ((methodInfo.IsVirtual && !ctx.IsDesignerFile) || (methodInfo.IsOverride() && !methodInfo.GetBaseDefinition().IsAbstract && ctx.IsDesignerFile))
{
if ((ctx.CurrentAttribute as GenerateMethod).CallBase)
{
//if (!info.IsOverride() || !info.GetBaseDefinition().IsAbstract && IsDesignerFile)
//{
ctx.CurrentMethod.invoke_base(true);
//}
}
}
}
示例3: CreateField
private void CreateField(TemplateContext ctx)
{
if (FieldType != null)
{
Field = ctx.CurrentDeclaration._private_(ctx.ProcessType(FieldType), "_{0}", ctx.CurrentProperty.Name.Clean());
}
else
{
Field = ctx.CurrentDeclaration._private_(ctx.CurrentProperty.Type, "_{0}", ctx.CurrentProperty.Name.Clean());
}
if (_customAttributes != null)
Field.CustomAttributes.AddRange(_customAttributes.Select(p=>new CodeAttributeDeclaration(new CodeTypeReference(p))).ToArray());
}