示例#1
0
        public string GetFieldName(FieldX fldX)
        {
            string strName = fldX.GeneratedFieldName;

            if (strName == null)
            {
                string prefix = fldX.IsStatic ? "sfld_" : "fld_";

                string middle = null;
                if (fldX.IsStatic)
                {
                    int hashCode = Helper.CombineHash(
                        fldX.GetNameKey().GetHashCode(),
                        fldX.GetReplacedNameKey().GetHashCode(),
                        fldX.DeclType.GetNameKey().GetHashCode(),
                        (int)fldX.Def.Rid);

                    middle = NameHash(hashCode) + '_' +
                             GetNameWithGen(fldX.DeclType.Def.Name, fldX.DeclType.GenArgs);
                }
                else
                {
                    middle = fldX.GetDefOrder().ToString();
                }

                strName = prefix + middle + '_' + fldX.Def.Name;

                fldX.GeneratedFieldName = strName = EscapeName(strName);
            }
            return(strName);
        }
示例#2
0
        public string GetFieldName(FieldX fldX)
        {
            string strName = fldX.GeneratedFieldName;

            if (strName == null)
            {
                string prefix = fldX.IsStatic ? "sfld_" : "fld_";

                if (!fldX.DeclType.HasGenArgs && fldX.DeclType.Def.DefinitionAssembly.IsCorLib())
                {
                    string middle = null;
                    if (fldX.IsStatic)
                    {
                        middle = GetNameWithGen(fldX.DeclType.Def.Name, fldX.DeclType.GenArgs) +
                                 "__";
                    }

                    strName = prefix + middle + fldX.Def.Name;
                }
                else
                {
                    string middle = null;
                    if (fldX.IsStatic)
                    {
                        int hashCode = Helper.CombineHash(
                            fldX.GetNameKey().GetHashCode(),
                            fldX.GetReplacedNameKey().GetHashCode(),
                            fldX.DeclType.GetNameKey().GetHashCode());
                        middle = NameHash(hashCode) + '_' +
                                 GetNameWithGen(fldX.DeclType.Def.Name, fldX.DeclType.GenArgs);
                    }
                    else
                    {
                        middle = NameHash((int)fldX.Def.Rid);
                    }

                    strName = prefix + middle + "__" + fldX.Def.Name;
                }

                fldX.GeneratedFieldName = strName = EscapeName(strName);
            }
            return(strName);
        }