Esempio n. 1
0
        private static string GetTypeName(Type type, NamespaceFormat namespaceFormat)
        {
            if (!string.IsNullOrEmpty(type.Namespace) && !IgnoreNamespace(type, namespaceFormat))
            {
                return(type.Namespace + "." + FormatTypeName(type, namespaceFormat));
            }

            return(FormatTypeName(type, namespaceFormat));
        }
        /// <summary>
        /// Loads an embedded resource.
        /// </summary>
        /// <param name="folder">Top-level folder to load resource from.</param>
        /// <param name="fileName">File name of resource.</param>
        /// <returns>Stream of resource file contents.</returns>
        protected override Stream GetResourceStream(string folder, string fileName)
        {
            var nameSpace      = NamespaceFormat.FormatWithCulture(folder, fileName);
            var assembly       = Assembly.GetExecutingAssembly();
            var resourceStream = assembly.GetManifestResourceStream(nameSpace);

            if (resourceStream == null)
            {
                throw new FileNotFoundException(string.Format("Embedded resource '{0}' was not found.", nameSpace));
            }

            return(resourceStream);
        }
Esempio n. 3
0
        private static bool IgnoreNamespace(Type type, NamespaceFormat namespaceFormat)
        {
            if (namespaceFormat == NamespaceFormat.All)
            {
                return(false);
            }

            switch (type.Namespace)
            {
            case "System":
            case "System.Collections.Generic":
                return(namespaceFormat == NamespaceFormat.ExcludeSystem);
            }

            return(namespaceFormat == NamespaceFormat.None);
        }
Esempio n. 4
0
        private static string FormatTypeName(Type type, NamespaceFormat namespaceFormat)
        {
            if (!type.IsGenericType)
            {
                return(type.Name);
            }

            var sb = new StringBuilder();

            var gname    = type.Name;
            var tildePos = gname.IndexOf('`');

            if (tildePos != -1)
            {
                gname = gname.Substring(0, tildePos);
            }

            bool first = false;

            sb.AppendFormat("{0}<", gname);
            foreach (Type arg in type.GetGenericArguments())
            {
                if (!first)
                {
                    first = true;
                }
                else
                {
                    sb.Append(", ");
                }

                sb.Append(GetTypeName(arg, namespaceFormat));
            }
            sb.Append(">");

            return(sb.ToString());
        }
Esempio n. 5
0
        public static string GetMethodSignature(MethodBase method,
                                                bool includeDeclaringType, bool includeParameterNames, NamespaceFormat namespaceFormat)
        {
            var sb = new StringBuilder();

            var first = false;

            if (!method.IsConstructor)
            {
                sb.Append(GetTypeName(((MethodInfo)method).ReturnType, namespaceFormat));
                sb.Append(' ');
            }

            if (includeDeclaringType)
            {
                sb.Append(GetTypeName(method.DeclaringType, namespaceFormat));
                sb.Append('.');
            }

            sb.Append(method.Name);
            sb.Append('(');

            foreach (var param in method.GetParameters())
            {
                if (!first)
                {
                    first = true;
                }
                else
                {
                    sb.Append(", ");
                }

                var typename = GetTypeName(param.ParameterType, namespaceFormat);
                if (typename.EndsWith("&"))
                {
                    typename = typename.Substring(0, typename.Length - 1);
                    sb.Append("out ");
                }

                sb.Append(typename);

                if (includeParameterNames)
                {
                    sb.Append(' ');
                    sb.Append(param.Name);
                }
            }
            sb.Append(")");

            var methodSignature = sb.ToString();

            return(methodSignature);
        }