Skip to content

Problems with Resources generator generated code #155

@justinwritescode

Description

@justinwritescode

Describe the Bug

  • Relative path names (e.g., "./") generate dots (".") as partial class names
  • Dashes in path names generate attempts at dashes in class names

Steps to Reproduce

Embed the file name "./swagger-ui/swagger-ui.css" in a .csproj file

This is the result:

partial class ThisAssembly
{
    public static partial class Resources
    {
        public static partial class . <-- this is bad {

        public static partial class swagger - <-- so is this

        ui {
        /// <summary>
        /// => @"./swagger-ui/swagger-ui.css"
        /// </summary>
        public static partial class swagger -

        ui {
        public static byte[] GetBytes() => EmbeddedResource.GetBytes(@"./swagger-ui/swagger-ui.css");
        public static Stream GetStream() => EmbeddedResource.GetStream(@"./swagger-ui/swagger-ui.css");
    }
} } } }

Expected Behavior

Expect the output to look like either this:

partial class ThisAssembly
{
    public static partial class Resources
    {
        public static partial class swaggerui {
        /// <summary>
        /// => @"./swagger-ui/swagger-ui.css"
        /// </summary>
        public static partial class swaggerui {
        public static byte[] GetBytes() => EmbeddedResource.GetBytes(@"./swagger-ui/swagger-ui.css");
        public static Stream GetStream() => EmbeddedResource.GetStream(@"./swagger-ui/swagger-ui.css");
    }
} }

Or this:

partial class ThisAssembly
{
    public static partial class Resources
    {
        public static partial class swagger_ui {
        /// <summary>
        /// => @"./swagger-ui/swagger-ui.css"
        /// </summary>
        public static partial class swagger_ui {
        public static byte[] GetBytes() => EmbeddedResource.GetBytes(@"./swagger-ui/swagger-ui.css");
        public static Stream GetStream() => EmbeddedResource.GetStream(@"./swagger-ui/swagger-ui.css");
    }
} }

Exception with Stack Trace

error CS0111: Type 'ThisAssembly.Resources.themes' already defines a member called 'GetBytes' with the same parameter types 

Which also brings up another potential issue, which I'll raise in a separate ticket

Version Info

1.1.1

Additional Info

Nope!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions