当前位置: 首页>>代码示例>>C#>>正文


C# TemplateContext.ProcessType方法代码示例

本文整理汇总了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);
     }
 }
开发者ID:InvertGames,项目名称:uFrame.Editor,代码行数:10,代码来源:GenerateProperty.cs

示例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);
                    //}

                }
            }

        }
开发者ID:InvertGames,项目名称:uFrame.Editor,代码行数:40,代码来源:GenerateMethod.cs

示例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());
 }
开发者ID:InvertGames,项目名称:uFrame.Editor,代码行数:13,代码来源:WithField.cs


注:本文中的TemplateContext.ProcessType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。