Example #1
0
        protected override void CreateText(Dictionary <uint, NuGenTokenBase> allTokens)
        {
            base.CreateText(allTokens);
            ReadSignature();
            NuGenHelperFunctions.SetSignatureItemToken(allTokens, signatureReader.ReturnType);

            NuGenAssembly assembly = BaseTypeDefinition.ModuleScope.Assembly;

            DefinitionBuilder.Length = 0;

            if ((Flags & CorPropertyAttr.prSpecialName) == CorPropertyAttr.prSpecialName)
            {
                DefinitionBuilder.Append("specialname ");
            }

            CorPropertyAttr reservedFlags = Flags & CorPropertyAttr.prReservedMask;

            if ((reservedFlags & CorPropertyAttr.prRTSpecialName) == CorPropertyAttr.prRTSpecialName)
            {
                DefinitionBuilder.Append("rtsspecialname ");
            }

            if ((signatureReader.CallingConvention & CorCallingConvention.IMAGE_CEE_CS_CALLCONV_HASTHIS) == CorCallingConvention.IMAGE_CEE_CS_CALLCONV_HASTHIS)
            {
                DefinitionBuilder.Append("instance ");
            }

            DefinitionBuilder.Append(signatureReader.ReturnType);
            DefinitionBuilder.Append(" ");
            DefinitionBuilder.Append(Name);
            DefinitionBuilder.Append("(");

            if (signatureReader.Parameters != null)
            {
                for (int parametersIndex = 0; parametersIndex < signatureReader.Parameters.Count; parametersIndex++)
                {
                    NuGenBaseSignatureItem parameter = signatureReader.Parameters[parametersIndex];
                    NuGenHelperFunctions.SetSignatureItemToken(allTokens, parameter);
                    DefinitionBuilder.Append(parameter);

                    if (parametersIndex < signatureReader.Parameters.Count - 1)
                    {
                        DefinitionBuilder.Append(", ");
                    }
                }
            }

            DefinitionBuilder.Append(")");
            Definition = DefinitionBuilder.ToString();
        }