Tag: 代码生成

在运行时执行C#或VB.NET代码

最近在Codility.com上度过了一段时间,它在我脑海中浮现; 他们如何执行你创建的代码(特别是与C#和VB.NET有关)? 我基本上想知道的是我如何在表单上使用文本框中的某些代码,然后运行该代码? 没有第三方工具,这可能吗? 另外,您如何防止特别与基于Web的此类程序实施相关的安全违规?

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

我有一个案例,我需要生成两个CSharp代码文件具有相同的代码但不同的方法的输入和输出类型的命名空间。 事实上,每个文件都针对特定国家/地区,而且类型来自特定国家/地区的WSDL。 我正在围绕服务编写一些包装器,逻辑完全相同,但是从WSDL自动生成的类型是不同的。 我怎样才能减少编码工作量并在一个地方编写逻辑并为两组不同类型生成逻辑?

禁止生成c#代码的警告

我为我的VS项目打开了“将警告视为错误”,这意味着我因错过的文档而出错(这个特定项目的提醒很好)。 但是,部分代码是由一个自定义工具生成的,该工具不会插入xml文档,因此我正在寻找远离忽略生成代码的缺失xml文档,而不是整个项目。 我对生成的实际文件没有任何影响,并且无法在文件中真正插入任何内容(因为它经常被工具重新生成)所以我在生成的文件之外寻找存在的东西(生成的类是部分的,如果这有帮助的话)

C#代码生成

我正在为项目创建一个小类生成器。 我一直在阅读有关CodeDOM的内容,因此创建类的语义似乎不是一个问题,但我不确定如何最好地将这一代集成到开发和部署过程中。 我该如何触发类的创建? 我已经读过它应该是构建过程的一部分,我应该怎么做? 应该在哪里创建课程? 我读到不应该手动编辑文件,也不要检查源代码控制。 我是否应该担心这一点,只是将类生成到与生成器引擎相同的目录中?

如何从WADL文件生成C#代码?

我正在寻找一个代码生成器,而不是生成C#代码来访问WADL文件描述的RESTful Web服务,其方式与wadl2java的工作方式类似。 做som搜索我遇到了Google Code上的rest-api-code-gen项目,但是虽然最新的源代码确实支持C#,但REST Describe&Compile演示站点却没有。 (C#按钮在那里,但它已被禁用。) 我意识到我可以下载源代码并使用最新版本设置我自己的服务器,但我不愿意,因为我需要的是命令行工具,而不是依赖于Google Web Toolkit的Web应用程序。 我想我可以编写自己的基于相同源代码的命令行工具,但如果它已经完成,或者其他工具可以完成这项工作,我宁愿避免它。 所以,我想知道,有那样的工具吗?

使用T4模板基于POCO生成多个类

我正在寻找一种方法来提高生产力,当我向我的数据库添加一个表。 通常,当我添加新表时,我必须执行以下步骤。 将表添加到数据库(简单) 创建相应的EF Code First类。 (我不使用db迁移) 创建一个匹配#2中创建的EF类的POCO模型。 创建存储库类 为CQRS模式创建命令和处理程序 为新创建的类创建AutoMapper映射 我最近创建了一个新网站,其中要求首先使用EF数据库,我看到它是如何使用tt文件生成类的。 这让我想到我可以以某种方式使用这些模板(新的模板)来生成基本CRUD操作的所有标准支持项。 麻烦的是我没有创建这些模板的经验,也不知道从哪里开始。 要生成的示例代码: 知识库 using System; using System.Collections.Generic; using System.Linq; using System.Text; public interface IUsersRepository : IRepository { } public class UsersRepository : RepositoryBase, IUsersRepository { public UsersRepository(IDatabaseFactory databaseFactory) : base(databaseFactory) { } } 基于EDMX(或Code First)生成的实体的基本模型 using System; using System.Collections.Generic; using System.Linq; using […]

从生成它的应用程序中调试生成的.NET程序集

简而言之:如何在生成程序上调试调试会话期间生成的代码? (见下面的代码) 我面临以下问题:我想从生成它的应用程序调试动态生成/编译的代码。 我提供了一个简单的例子来澄清它。 这个例子不需要调试! 我真正的应用程序生成更多的行和代码,真正certificate调试,相信我:-)我想知道是否有一种方法可以在HelloWorld上调试或设置断点。 单步调用InvokeMethod调用不起作用。 也许解决方案涉及在调用站点对生成的程序集进行代码修改。 我已经看了很多问题(例如, 在Visual Studio .NET中调试动态加载的程序集 ),但没有一个有助于解决问题(如果可以解决的话?) 我从http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=118中获取代码作为基础并修复了已废弃的调用。 除此之外,我在内存中即时生成了程序集,并且调用运行良好。 我明确地生成了一个包含Debug信息的程序集,这给了我希望:为什么在没有调试的情况下会有选项呢? using System; using System.Text; using System.IO; using Microsoft.CSharp; using System.CodeDom.Compiler; using System.Reflection; namespace DynamicAssembly { class CreateCompileExecute { [STAThread] static void Main(string[] args) { // Creates a text file to store the new class StringBuilder builder = new StringBuilder(); […]

用于C#的简单CRUD生成器

我正在为C#寻找一个简单的CRUD(或DAL)生成器。 我不想要任何重量级的东西,因为我在SQL Server 2008数据库中只有几个表。 有什么建议? 我知道.netTiers,但这对我需要的东西来说太过分了。 谢谢! 更新:我尝试过LINQ to SQL,它不能很好地满足我的需求。

是否有编程方法来识别c#保留字?

我正在寻找像这样的function public bool IsAReservedWord(string TestWord) 我知道我可以通过从MSDN获取一个保留字列表来自行推出。 但是我希望有一些内置于语言或.NETreflection中的内容可以依赖,所以当我转移到更新版本的C#/ .NET时,我不必重新访问该函数。 我正在寻找这个的原因是我正在寻找.tt文件代码生成的安全措施。

学习CIL(MSIL)的最佳资源是什么

我是一名专家C#3 / .NET 3.5程序员,希望使用System.Reflection.Emit.DynamicMethod开始运行一些运行时代码。 我很想通过熟悉IL来提升到一个新的水平。 任何指针(双关语)?