在Intent Architect模板中,我是否可以解析一个类型(从字符串中),使其包含适当的using语句



在一个根据特定条件动态生成代码的模板中,一些代码使用的类型需要额外的using语句才能正确编译。如果生成了特定的代码,我如何引用/使用这样的类型,以便在生成的输出中包括使用?

例如,给定此代码,我如何确保添加正确的用法?

if (attribute.IsEnum()) {
// Resolve the EnumToStringConverter type?
statements.Add($".HasConversion(new EnumToStringConverter<{attribute.Type.Element.Name}>());");
}

实现这一点的一种方法是使用CSharpTemplateBase基类上可用的UseType(...)方法(在Intent.Modules.Common.CSharp.3.0.10nuget包中可用(。

例如,你可以尝试这样的东西:

if (attribute.IsEnum()) {
// Resolve the EnumToStringConverter type?
statements.Add($".HasConversion(new {UseType("EnumToStringConverter", "<your-required-namespace>"}<{attribute.Type.Element.Name}>());");
}

还有另一个重载,它将采用完全限定的名称。例如:UseType("Microsoft.EntityFrameworkCore.Storage.ValueConversion.EnumToStringConverter")

(假设您使用的是EF Core的EnumToStringConverter(

相关内容

  • 没有找到相关文章

最新更新