jjzjj

c# - 在 .NET Core 下的分层架构中自动创建 CRUD

我正在一个典型的三层架构下的新项目中工作:business、data和client,使用Angular作为前端。在这个项目中,我们将有一个我们想要自动化的重复性任务:CRUD的创建。我们要做的是生成模型和Controller(放置、获取、发布、删除)以及来自实体及其属性的其他基本项目信息。我最好的选择是什么?我曾考虑过模板T4,但我对它们的无知使我怀疑它是否是最佳选择。例如,来自这个实体:publicclassUser{publicintId{get;set;}publicstringName{get;set;}publicstringEmail{get;set;}publicIEnu

c# - 使用 T4/EnvDTE 获取所有用特定属性修饰的方法

我想获取项目中使用T4/EnvDTE使用MyAttribute修饰的所有公共(public)方法的列表。我知道这可以通过反射来完成,但我不想加载程序集并在T4模板中反射它,相反,我想使用现有的代码文件作为源。以下是我在互联网上找到的引用当前项目的样板代码 最佳答案 我想确认您使用EnvDTE获取有关项目类和方法的设计时信息的计划。在我看来,这比冒险反射(reflect)同一项目的过时程序集更可靠。由于您已经获得了解决方案的当前项目,因此您现在应该使用VisualStudioCodeModel迭代您的类及其方法等。我知道这可能很烦人,

C# POCO T4 模板,生成接口(interface)?

有谁知道任何可以生成接口(interface)和类的POCOT4模板的调整版本?即,如果我在.edmx文件中有Movie和Actor实体,我需要获取以下类和接口(interface)。interfaceIMovie{stringMovieName{get;set;}ICollectionActors{get;set;}//insteadofICollection}classMovie:IMovie{stringMovieName{get;set;}ICollectionActors{get;set;}//insteadofICollection}interfaceIActor{stri

c# - 在 Visual Studio Code 中执行 T4 文本模板

我在VisualStudioCode中创建了一个T4文本模板(.tt)文件,但与VisualStudio2017(或2015,...)不同,它不会在保存后生成输出文件.tt文件。如何在VisualStudioCode中生成输出? 最佳答案 此解决方案并不完全符合您的要求,但它可能在许多情况下都有用(仅限Windows操作系统)。您可以在VisualStudioCode中创建任务并运行C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Enterprise\Common7\IDE\TextT

c# - 在 T4 中使用项目引用作为程序集路径

我有一个.tt脚本需要引用几个外部程序集。T4主机是否可以自动包含项目中引用的程序集-而不是我手动为每个程序集添加程序集指令?例如当使用相对于$(ProjectDir)的路径时,从nuget引用程序集是一个移动目标。使用像$(Project)\bin\Debug\Example.dll这样的程序集路径似乎也不是最优的——因为它要求构建之前已经成功——如果您有一个.tt文件在.cs文件中生成“ErrorGeneratingOutput”!?更新1:所以我第二次尝试解决这个问题,但这次试图解决围绕“TransformOnBuild”的问题(作为旁注,我强烈推荐@kzu的优秀项目:https

c# - T4 模板错误 : loading the include file ef. utility.cs.ttinclude 返回了 null 或空字符串

我已经覆盖了Controller生成T4模板(ControllerWithContext.tt),如here所述.我想利用在POCO模型生成器T4模板中使用的EF.utility.CS.ttinclude中的代码帮助实用程序。因此,我将以下行从我的Model.tt复制到我的ControllerWithContext.tt。但是,当我尝试添加Controller时,我收到了错误消息Loadingtheincludefile'EF.utility.CS.ttinclude'returnedanulloremptystring根据MSDNdocumentation,这个错误是因为包含的文件是

c# - T4 模板不会随着构建而转换

我在Windows7上使用VisualStudioUltimate2012(更新1)。我可以通过以下方式让我的T4模板生成文件:右键单击[tt文件]|运行自定义工具。效果很好!(对我来说是的)。如果我运行菜单命令,它也可以工作:Build|转换所有T4模板。但我想要自动化!当我尝试让生成的代码文件在每次构建时生成时遇到问题——这是我的目标。我看着这个:T4transformationandbuildorderinVisualStudio这不是我想要的。它讨论了使用预构建构建事件。我希望它成为构建的一部分。还有这个:IsthereawaytogetVisualStudiotorun“Tr

c# - 在 T4 模板中获取引用项目的路径?

我有一个包含几个项目的解决方案。我想在我的一个测试项目中创建一些T4模板,以根据另一个项目中的代码生成测试。测试项目具有对其他项目的项目引用。我遇到的问题是我不知道如何获取我需要从中生成代码的edmx文件的文件路径。示例(假设这是一个基于ASCII的解决方案资源管理器):MySolution.sln->MyTests.csproj(C:\a\b\c\)---->GeneratedTests.tt(C:\a\b\c\GeneratedTests.tt)->MyDAL.csproj(C:\x\y\z\)---->MyModel.edmx(C:\x\y\z\MyModel.edmx)我的Ge

c# - 如何将 .net Reflection 与 T4 一起使用?

我有一个包含文本模板的C#项目。我希望此模板根据项目中的C#类的反射(reflect)生成一些SQL。如何使用T4访问当前项目的内容?是否有可能,如果可以,反射是否可用,或者它是否只能访问随后必须解析的原始源?提前致谢! 最佳答案 Howdoesoneaccessthecurrentproject'scontentsusingT4?一种方法是使用EnvDTECOM组件。谷歌搜索T4和EnvDTE应该会带回大量示例。Isitpossible,andifso,isReflectionavailable,orisitaccesstojus

c# - 如何使用T4从一个模板同时生成两个文件?

我有一个案例,我需要生成两个CSharp代码文件,它们具有完全相同的代码,但方法的输入和输出类型的命名空间不同。事实上,每个文件都是针对特定国家/地区的,类型来自特定国家/地区的WSDL。我正在围绕服务编写一些包装器,逻辑完全相同,但从WSDL自动生成的类型不同。我怎样才能减少编码工作并在一个地方编写逻辑并为两组不同的类型生成它? 最佳答案 或者您可以使用T4Toolbox(OldCodePlexproject,NewGitHubproject)并使用助手生成多个文件。作者OlegSych拥有adocumentaryblogpost