public static string ToReflectionString(this IAssemblySignature assemblySig, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new ReflectionSignaturePrinter(flags);

            printer.PrintAssembly(assemblySig);

            return(printer.ToString());
        }
        public static string ToString(this IModuleSignature moduleSig, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new SignaturePrinter(flags);

            printer.PrintModule(moduleSig);

            return(printer.ToString());
        }
        public static string ToString(this IEventSignature eventSig, IModule module = null, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new SignaturePrinter(flags);

            printer.PrintEvent(eventSig, module);

            return(printer.ToString());
        }
        public static string ToString(this IPropertySignature propertySig, IModule module = null, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new SignaturePrinter(flags);

            printer.PrintProperty(propertySig, module);

            return(printer.ToString());
        }
        public static string ToString(this IFieldSignature fieldSig, IModule module = null, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new SignaturePrinter(flags);

            printer.PrintField(fieldSig, module);

            return(printer.ToString());
        }
        public static string ToReflectionString(this ITypeSignature typeSig, IModule module = null, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var printer = new ReflectionSignaturePrinter(flags);

            printer.PrintType(typeSig, module);

            return(printer.ToString());
        }
 internal ReflectionSignaturePrinter(SignaturePrintingFlags flags)
 {
     _flags = flags;
 }
Beispiel #8
0
        public static string PrintAssembly(string name, string culture, Version version, byte[] publicKeyToken, SignaturePrintingFlags flags = SignaturePrintingFlags.None)
        {
            var builder = new StringBuilder();

            builder.Append(name);

            if ((flags & SignaturePrintingFlags.IgnoreAssemblyStrongName) != SignaturePrintingFlags.IgnoreAssemblyStrongName)
            {
                bool ignoreDefaultValues = (flags & SignaturePrintingFlags.IgnoreAssemblyStrongNameDefaultValues) == SignaturePrintingFlags.IgnoreAssemblyStrongNameDefaultValues;

                // Version
                if (version != null)
                {
                    builder.AppendFormat(", Version={0}", version.ToString());
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", Version=0.0.0.0");
                }

                // Culture
                if (!string.IsNullOrEmpty(culture))
                {
                    builder.AppendFormat(", Culture={0}", culture);
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", Culture=neutral");
                }

                // PublicKeyToken
                if (publicKeyToken != null && publicKeyToken.Length > 0)
                {
                    builder.AppendFormat(", PublicKeyToken={0}", ConvertUtils.ToHexString(publicKeyToken).ToLower());
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", PublicKeyToken=null");
                }
            }

            return(builder.ToString());
        }
Beispiel #9
0
 public SignaturePrinter(SignaturePrintingFlags flags, StringBuilder builder)
 {
     _flags   = flags;
     _builder = builder ?? new StringBuilder(0x60);
 }
Beispiel #10
0
 public SignaturePrinter(SignaturePrintingFlags flags)
     : this(flags, null)
 {
 }
Beispiel #11
0
        internal static void PrintAssembly(StringBuilder builder, IAssemblySignature assemblySig, SignaturePrintingFlags flags)
        {
            builder.Append(assemblySig.Name);

            if ((flags & SignaturePrintingFlags.IgnoreAssemblyStrongName) != SignaturePrintingFlags.IgnoreAssemblyStrongName)
            {
                bool ignoreDefaultValues = (flags & SignaturePrintingFlags.IgnoreAssemblyStrongNameDefaultValues) == SignaturePrintingFlags.IgnoreAssemblyStrongNameDefaultValues;

                // Version
                if (assemblySig.Version != null)
                {
                    builder.AppendFormat(", Version={0}", assemblySig.Version.ToString());
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", Version=0.0.0.0");
                }

                // Culture
                if (!string.IsNullOrEmpty(assemblySig.Culture))
                {
                    builder.AppendFormat(", Culture={0}", assemblySig.Culture);
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", Culture=neutral");
                }

                // PublicKeyToken
                if (assemblySig.PublicKeyToken != null && assemblySig.PublicKeyToken.Length > 0)
                {
                    builder.AppendFormat(", PublicKeyToken={0}", ConvertUtils.ToHexString(assemblySig.PublicKeyToken).ToLower());
                }
                else if (!ignoreDefaultValues)
                {
                    builder.Append(", PublicKeyToken=null");
                }

                // ProcessorArchitecture
                string procArchString;
                switch (assemblySig.ProcessorArchitecture)
                {
                case ProcessorArchitecture.MSIL:
                    procArchString = "msil";
                    break;

                case ProcessorArchitecture.X86:
                    procArchString = "x86";
                    break;

                case ProcessorArchitecture.Amd64:
                    procArchString = "amd64";
                    break;

                case ProcessorArchitecture.IA64:
                    procArchString = "ia64";
                    break;

                default:
                    procArchString = null;
                    break;
                }

                if (procArchString != null)
                {
                    builder.AppendFormat(", ProcessorArchitecture={0}", procArchString);
                }
            }
        }