Tag: 代码生成

动态加载和卸载使用CSharpCodeProvider生成的dll

我有一个应用程序,它使用一些代码脚本在运行时生成dll并根据需要调用它们并在我继续编码之前遇到一些问题! 是否可以在不需要时从内存中卸载它们? 如果不是 – 将它们加载到单独的appdomains并使用某些ipc等调用调用会对性能产生什么影响 – 顺便说一下,这需要具有高性能/实时性 或者,如何加载生成的程序集的多个实例(当然使用不同的版本#)? 我假设你释放所有未使用的引用,它可能会被gc / framework卸载? 还有一个问题 – 在这种情况下会不会有任何“碰撞”(不确定这是否是正确的词?)?

C#CodeDom自动属性

我有一个用CodeDom创建的属性。 如何将其设置为自动属性,而不是向私有成员添加CodeFieldReferenceExpressions?

使用.NET CodeDom代码生成时,如何自定义自动生成的注释?

我正在使用CodeCompileUnit和CSharpCodeProvider来生成一些源代码。 它将下面的标题添加到所有生成的代码中。 有没有办法自定义评论,所以它说了别的什么? // // This code was generated by a tool. // Runtime Version:2.0.50727.3053 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. //

我可以使用System.Linq.Expressions动态生成异步方法吗?

我知道编译器无法将异步lambda表达式转换为表达式树,但是可以手动生成表达式树吗? var expr = Expression.Lambda<Func>( // how do I use ‘await’ in the body here? ); var func = expr.Compile(); 我在Expression类中找不到与async或await相关的任何方法,但也许还有另一种方法?

从模板生成多个输出文件

您好我正在为我的xml文件编写自定义模板生成器。 我想知道你们是否可以告诉我一种方法,我可以在同一模板下从模板生成多个输出文件。 文件号应该取决于我输入的xml文件的数量 如果我想为a.xml生成c#类,我正在做这样的事情 其中我的函数XmlToCsGenerator.Xml(字符串路径)返回要写入文件的字符串。 提前致谢

使用C#实现代码模板

当我需要代码模板时,我可以使用Python如下。 templateString = “”” %s %s %s “”” print templateString % (“a”,”b”,”c”) 如何使用C#实现等效? 我试过了 using System; class DoFile { static void Main(string[] args) { string templateString = ” {0} {1} {2} “; Console.WriteLine(templateString, “a”, “b”, “c”); } } 但是我得到了 dogen.cs(86,0): error CS1010: Newline in constant dogen.cs(87,0): error CS1010: Newline in constant dogen.cs(88,0): error CS1010: Newline […]

从模型生成viewmodel?

我正在为我的(WPF / C#)应用程序编写viewmodels。 我必须做很多复制和粘贴。 有没有办法从模型生成视图模型,如从数据库生成模型? 我在网上找不到任何关于它的东西……

使用Codedom生成C#自动属性

有没有办法使用Codedom生成C#自动属性, 或者我可以使用其他一组libreries?

T4预处理模板调试不起作用 – Visual Studio 2010 RTM

我正在尝试调试预处理的T4模板,我无法进入通过运行预处理模板创建的类。 我能够创建一个类的实例,但是一旦我尝试在调试时进入,就会弹出一个新窗口 没有可用的来源。 当前位置没有可用的源代码。 我的理解是预处理模板可以像普通的c#类一样调试,这不正确吗? 为了能够进入由预处理模板定义的类,您需要做些什么吗? 这是一个非常简单的模板和我遇到问题的调用代码: TestPreprocessedTemplate.tt: Hello 测试代码: var template = new TestPreprocessedTemplate(); string test = template.TransformText(); 编辑 – 根据下面的建议添加了debug =“true”语句,仍然有同样的问题。 更新 – 我也在MSDN论坛上发布了这个问题,并收到了MS员工的回复,表明我上面描述的内容应该确实有效。 还有其他人遇到过这个问题吗? 更新 – 在MSDN论坛的帮助下,看起来问题在于将#line指令添加到生成的c#类中。 评论它们允许我按预期逐步执行代码。 有没有办法阻止将这些指令添加到生成的类中? 使用ASP.NET页面,您可以添加LinePragmas =“false”参数,但这似乎对T4模板没有任何影响。 有任何想法吗?

在构建服务器上运行TextTransform.exe(T4)

我正在尝试设置一个进程,我的T4模板将在构建服务器上进行转换(Visual Studio未安装在那里)。 我已阅读所有在线参考资料,但无法获得显示如何执行此操作的明确来源。 具体来说,这是我遇到的两个问题: TextTransform.exe抛出有关缺少DLL的错误: C:\ TeamCity \ buildAgent \ work \ AppSettings.tt(0,0):错误CS0006:编译转换:元数据文件’Microsoft.VisualStudio.TextTemplating.Interfaces.10.0,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a ‘无法找到 使用gacutil注册DLL文件修复了这个问题,虽然我想避免这一步。 在Visual Studio外部运行时,使用Host.ResolvePath(string)方法不返回任何值。 此方法有助于确定模板用作其数据源的.txt文件的完整路径。 没有它,在构建服务器上找不到此文件。 任何帮助将在运行中受到赞赏。 编辑:打开MS CONNECT问题: https : //connect.microsoft.com/VisualStudio/feedback/details/744137/texttransform-exe-does-not-work-without-vs2010-installed 参考资料我检查过: 获取Visual Studio以在每个构建上运行T4模板 没有Visual Studio的T4? http://msdn.microsoft.com/en-us/library/ee847423.aspx#buildserver