C# 强化。键入无法处理属性上的属性
我有一个使用ASP.NET标识的ASP.NET核心项目。某些类无法导出,因为它们的属性包含来自C# 强化。键入无法处理属性上的属性,c#,asp.net-core,reinforced-typings,C#,Asp.net Core,Reinforced Typings,我有一个使用ASP.NET标识的ASP.NET核心项目。某些类无法导出,因为它们的属性包含来自System.ComponentModel.DataAnnotations的属性。如果我忽略这些属性,一切都会很好 示例类: public class LoginViewModel { [Required] [EmailAddress] public string Email { get; set; } [Required] [DataType(DataType
System.ComponentModel.DataAnnotations
的属性。如果我忽略这些属性,一切都会很好
示例类:
public class LoginViewModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
既然我不想去掉这些属性,建议采取什么行动
[assembly: TsGlobal(
CamelCaseForMethods = true,
CamelCaseForProperties = true,
GenerateDocumentation = true,
UseModules = true,
DiscardNamespacesWhenUsingModules = true)]
namespace X
{
public static class ReinforcedTypingsConfiguration
{
public static void Configure(ConfigurationBuilder builder)
{
builder
.ExportAsInterface<LoginViewModel>()
.AutoI(false)
.WithProperty(x => x.RememberMe)
;
}
}
}
[程序集:TsGlobal(
CamelCaseForMethods=true,
CamelCaseForProperties=true,
生成文档=真,
UseModules=true,
DiscardNamespacesWhenUsingModules=true)]
名称空间X
{
公共静态类增强的键入配置
{
公共静态无效配置(ConfigurationBuilder)
{
建设者
.exportaInterface()
.AutoI(错误)
.WithProperty(x=>x.RememberMe)
;
}
}
}
除此之外,UseModules
似乎与我希望它做的相反。当设置为true
时,生成的ts文件不包含任何模块。当设置为false
时,我在ts文件中获得模块
此外,在文件之间划分类型时,我在mac上会得到奇怪的文件夹名称,其中包含我命名空间中每个
的
。我能把结构弄平吗?完全忽略后端名称空间
在上面的配置中(我使用文件拆分),我收到了恼人的错误消息
错误MSB3552:找不到资源文件“***.resx”。
升级到1.4.2以解决此问题。无法导出?,您的意思是无法序列化?。。System.ComponentModel.DataAnnotations属性用于模型验证,它们不应导致序列化中出现任何问题。您可以发布您收到的错误吗?您提供的详细信息太少,但从当前代码中,我可以看出您可能缺少模型上的[TsInterface]
/[TsClass]
属性或fluent call.ExprotAsInterface
/.ExportAsClass。请提供您的导出配置-然后我可以回答。目前,我已经在我的机器上创建了test.NET Core项目,只需在上面添加[TsInterface]
即可成功导出您的模型。不以某种方式干扰System.ComponentModel.DataAnnotations
属性。一旦我解决了问题错误MSB3552:无法找到资源文件“***.resx”。
我将编写其他详细信息…根据您的代码,RT预期只导出一个字段-RememberMe
。尝试使用.WithPublicProperties()
关于模块:根据UseModules
选项可生成TS模块系统兼容代码。这并不意味着您将在代码中获得module
关键字。您是否收到任何错误消息?