如果提供了MyParameter,我希望生成此代码块.问题是,无论是否供应MyParameter,它永远不会产生结果.条件语句似乎只对boolean个参数有效.在我的例子中,MyParameterstring类型的.

public class MyClass
{
    #if (MyParameter)
    public string MyParameter { get; set; }
    ---#endif
}

我试着这么做

public class MyClass
{
     #if (!string.IsNullOrEmpty(MyParameter))
     public string MyParameter { get; set; }
     ---#endif
}

但与第一个不同的是,即使在MyParameter为空或空的情况下,它也始终会生成.我已经在template.json中将我的参数的defaultValue设置为"",但条件仍然总是计算为true.

推荐答案

您可以将计算设置添加到template.json文件中并在源代码中使用该设置.例如:

"MyParameter": {
    "type": "parameter",
    "datatype": "text",
    "defaultValue": ""
    ...
},
"IsMyParameterEmpty": {
    "type": "computed",
    "value": "MyParameter == \"\""
}

然后在您的C#源代码中:

public class MyClass
{
    #if (!IsMyParameterEmpty)
    public string MyParameter { get; set; }
    ---#endif
}

Csharp相关问答推荐

Unity中的Obi Fluid-改变解算器重力方向对粒子没有影响

如何从Date中剥离Timezone部分以仅保留本地Date部分?(no字符串解析或操作)

CS0103 dlibdotnet和www.example.com facerect不在上下文中

如何使用CsvReader获取给定列索引的列标题?

需要澄清C#的Clean Architecture解决方案模板的AuditableEntityInterceptor类

使用Audit.EntityFramework,我如何将外键的值设置为相关实体上的属性?

查找表中的模式

使用Orleans进行的单元测试找不到接口的实现

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

C#-VS2022:全局使用和保存时的代码清理

Unix上的.NET(核心):.NET意外地未看到通过P/Invoke系统调用对环境变量进行的进程内修改

单元测试:模拟返回空

EF核心新验证属性`DeniedValues`和`StringCompison`不起作用

Postgres ENUM类型在第一次运行时对Dapper不可见

如何在.NET MAUI中最大化GraphicsView的大小?

如何在Polly重试策略成功之前将HttpClient请求排队?

try 访问字典中的模拟对象时引发KeyNotFoundException

C#中COM对象的实际地址

Xamarin.Forms项目中缺少MainPage.xaml

在Visual Studio 2022中查找Xamarin模板时遇到问题