Class name: MyAssembly.MyClass+MyOtherClass
The problem is obviously the + as separator, instead of traditionnal dot, its function, and to find official documentation to see if others separators exist.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
That’s just the way that a nested type is represented. So for example:
will create a type with a full name of
Foo.Outer+Nestedin the compiled code. (So that’s whattypeof(Outer.Nested).FullNamewould return, for example.)It’s not clear to me whether this is specified behaviour, or just what the Microsoft C# compiler chooses to use; it’s an “unspeakable” name in that you couldn’t explicitly declare a class with a + in it in normal C#, so the compiler knows it won’t clash with anything else. Section 10.3.8 of the C# 3 spec doesn’t dictate the compiled name as far as I can see.
EDIT: I’ve just seen that
Type.AssemblyQualifiedNamespecifies that “+” is used to precede a nested type name… but it’s still not clear whether or not that’s actually required or just conventional.