コード例 #1
0
        private string GetMetaName(IEntity member)
        {
            string name = null;

            if (TransformCtx.GetEntityName != null)
            {
                name = TransformCtx.GetEntityName(member);
            }

            if (name == null)
            {
                switch (member.SymbolKind)
                {
                case SymbolKind.Property: {
                    name = XmlMetaMaker.GetPropertyName((IProperty)member);
                    break;
                }

                case SymbolKind.Method: {
                    name = XmlMetaMaker.GetMethodName((IMethod)member);
                    break;
                }
                }
            }

            if (name != null)
            {
                if (Helpers.IsReservedWord(name))
                {
                    throw new System.Exception("GetMetaName[{0}, {1}, {2}] IsReservedWord".F(name, member.Name, member.DeclaringType.FullName));
                }
            }

            return(name);
        }
コード例 #2
0
        public virtual string GetEntityName(IEntity member, bool forcePreserveMemberCase = false, bool ignoreInterface = false)
        {
            if (TransformCtx.GetEntityName != null)
            {
                string entityName = TransformCtx.GetEntityName(member);
                if (!string.IsNullOrEmpty(entityName))
                {
                    if (Helpers.IsReservedWord(entityName))
                    {
                        throw new System.Exception("entityName[{0}, {1}, {2}] from TransformCtx.GetEntityName IsReservedWord".F(entityName, member.Name, member.DeclaringType.FullName));
                    }
                    return(entityName);
                }
            }

            bool preserveMemberChange = !this.IsNativeMember(member.FullName) ? this.AssemblyInfo.PreserveMemberCase : false;

            if (member is IMember && this.IsMemberConst((IMember)member) /* || member.DeclaringType.Kind == TypeKind.Anonymous*/)
            {
                preserveMemberChange = true;
            }
            var    attr     = Helpers.GetInheritedAttribute(member, Bridge.Translator.Translator.Bridge_ASSEMBLY + ".NameAttribute");
            bool   isIgnore = member.DeclaringTypeDefinition != null && this.Validator.IsIgnoreType(member.DeclaringTypeDefinition);
            string name     = member.Name;

            if (member is IMethod && ((IMethod)member).IsConstructor)
            {
                name = "constructor";
            }

            if (attr != null)
            {
                var value = attr.PositionalArguments.First().ConstantValue;
                if (value is string)
                {
                    name = value.ToString();
                    FixBridgePrefix(ref name);
                    if (!isIgnore && ((member.IsStatic && Emitter.IsReservedStaticName(name)) || Helpers.IsReservedWord(name)))
                    {
                        name = Helpers.ChangeReservedWord(name);
                    }
                    return(name);
                }

                preserveMemberChange = !(bool)value;
            }

            name = !preserveMemberChange && !forcePreserveMemberCase?Object.Net.Utilities.StringUtils.ToLowerCamelCase(name) : name;

            if (!isIgnore && ((member.IsStatic && Emitter.IsReservedStaticName(name)) || Helpers.IsReservedWord(name)))
            {
                name = Helpers.ChangeReservedWord(name);
            }
            return(name);
        }