Ability to generate an outer class
Closed this issue · 3 comments
beninkg commented
I have a requirement in my project, need to define an outer class. Is it an exiting feature?
public class CustomerId
{
}
public class CustomerType : BaseStringType
{
}
MilleBo commented
Do you mean without a namespace or just a regular class? Because you can create your example code with a namespace like this:
var @namespace = new NamespaceBuilder("MyNamespace")
.With(
new ClassBuildMember(new ClassBuilder("CustomerId", null)),
new ClassBuildMember(new ClassBuilder("CustomerType", null)
.ThatInheritFrom(CustomType.Create("BaseStringType"))))
.Build();
var codeSaver = new CodeSaver();
var code = codeSaver.SaveCodeAsString(@namespace);
Vill give you:
namespace MyNamespace
{
public class CustomerId
{
}
public class CustomerType : BaseStringType
{
}
}
Or if you want them in their own namespace you can just use the builder directly:
var @class = new ClassBuilder("CustomerId", "MyNamespace").Build();
var codeSaver = new CodeSaver();
var code = codeSaver.SaveCodeAsString(@class);
Will give you:
namespace MyNamespace
{
public class CustomerId
{
}
}
You can also get without namespace but it it's a bit more messy:
var @class = new ClassBuilder("CustomerId", "MyNamespace").BuildWithoutNamespace();
var codeSaver = new CodeSaver();
var code = codeSaver.SaveCodeAsString(SyntaxFactory.CompilationUnit().WithMembers(SingletonList<MemberDeclarationSyntax>(@class)));
But I maybe can add support to skip namespace if that's what you want?
MilleBo commented
Any other questions? If not I will close this issue later on.
beninkg commented
Thanks !!
You may please close this.