标签: code-generation

如何让Visual Studio使用系统类型(Int32)而不是内置别名(int)生成代码

我可以让Visual Studio将内置别名转换为系统类型吗?例如,如果我定义以下接口

public interface IExample
{
    Int32 DoWork(String input);
}
Run Code Online (Sandbox Code Playgroud)

并使用VS自动生成界面,我得到了内置类型.

public class Demo : IExample
{
    public int DoWork(string input) { }
}
Run Code Online (Sandbox Code Playgroud)

我希望那些自动更改为系统类型

public class Demo : IExample
{
    public Int32 DoWork(String input) { }
}
Run Code Online (Sandbox Code Playgroud)

我不是在寻找一个完整的可安装解决方案,只是一个起点.我可以在VS中编写一个连接文本完成或保存的脚本吗?我应该编写一个具有项目上下文菜单项的加载项 - "将别名转换为系统类型"吗?


注意:我更喜欢系统类型,因为它们像其他类型一样由VS格式化.内置别名的格式与关键字类似.此外,它是我目前工作的编码风格指南.

更新:从MS可以清楚地看出,现有的VS代码生成将始终生成内置别名.

code-generation coding-style visual-studio

8
推荐指数
1
解决办法
591
查看次数

为什么没有GWT-和脚本#式框架成为主导?

使用GWT,我们可以用Java编写代码并将其转换为JavaScript代码.使用Script#,我们可以用C#编写代码并将其转换为JavaScript代码.听起来GWT和Script#将使网络开发人员免受痛苦的痛苦.那么,为什么这些工具没有占主导地位?为什么还有人专门写javascript代码?

javascript gwt code-generation script#

8
推荐指数
4
解决办法
1564
查看次数

为什么我们仍然需要生成代码?

我已经看到很多生成存根应用程序的框架,例如Ruby on Rails,其中大部分代码用于业务领域逻辑,但为什么我们仍然生成代码.图书馆不是更好吗?

code-generation

8
推荐指数
2
解决办法
364
查看次数

你能改变VS Win Forms设计器代码生成吗?

我们实施了新的编码标准,要求我们的私人会员拥有领先的下划线.像这样:

private System.Windows.Forms.Label _label;
Run Code Online (Sandbox Code Playgroud)

不幸的是,当您将新标签拖到表单上时,VS将在下面输出默认值:

private System.Windows.Forms.Label label1;
Run Code Online (Sandbox Code Playgroud)

有没有办法将默认值更改为:

private System.Windows.Forms.Label _label1;
Run Code Online (Sandbox Code Playgroud)

这适用于所有控件,而不仅仅是标签,是的,它们将从代码中使用.

干杯,

普拉门

c# code-generation windows-forms-designer visual-studio winforms

8
推荐指数
3
解决办法
2251
查看次数

如何生成源代码以创建我正在调试的对象?

我的典型场景:

  1. 我工作的遗留代码有一个只有生产中的客户端才有的错误
  2. 我附加一个调试器,并找出如何重现在这个问题上他们的给定系统的输入.但是,我不知道为什么错误发生了.
  3. 现在我想在我的本地系统上编写一个自动化测试来尝试重现然后修复bug

最后一步真的很难.输入可能非常复杂,并且有很多数据.手动创建输入(例如:P p = new P(); p.setX("x"); p.setY("x");想象这样做1000次以创建对象)非常繁琐且容易出错.事实上你可能会注意到我刚给出的例子中有一个拼写错误.

是否有一种自动方式从我的调试器中的断点获取字段并生成将创建该对象的源代码,以相同的方式填充?

我唯一想到的就是序列化这个输入(例如使用Xstream).我可以将其保存到文件中并在自动测试中将其读回.这有一个主要问题:如果类以某种方式更改(例如:重命名了字段/ getter/setter名称),我将无法再反序列化该对象.换句话说,测试非常脆弱.

java testing automated-tests code-generation

8
推荐指数
1
解决办法
700
查看次数

Petri网绘图和代码生成

是否有任何用于绘制Petri网并从中生成任何源代码的软件?源代码可以是任何已知的编程语言......

稍微不太理想的选择是输出一个文件,其中只有基于文本的文件中的Petri网图形的描述,采用某种开放格式,如XML或任何其他数据语言.然后我可以自己编写代码生成器,但至少我想避免gui/graph开发部分;))

谢谢

automation code-generation metaprogramming petri-net

8
推荐指数
2
解决办法
7194
查看次数

如何从PowerShell脚本触发T4模板

在我的VS2010解决方案,我已经根据T4Scaffolding的NuGet设置PowerShell脚本和T4模板的,一切工作脚手架罚款及相关T4的,但在我的剧本之一,我需要触发位于另一个项目T4模板.

这个有什么简单的Powershel cmdlet吗?只运行模板而不传递任何参数或值.

谢谢.

powershell t4 code-generation visual-studio-2010

8
推荐指数
1
解决办法
2780
查看次数

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

我正在尝试设置一个进程,我的T4模板将在构建服务器上进行转换(Visual Studio未安装在那里).

我已经阅读了所有在线参考文献,但无法获得显示如何执行此操作的明确来源.

具体来说,这是我遇到的两个问题:

  • TextTransform.exe抛出有关缺少DLL的错误:

C:\ TeamCity的\ buildAgent \工作\ AppSettings.tt(0,0):错误CS0006:编译转型:元数据文件"Microsoft.VisualStudio.TextTemplating.Interfaces.10.0,版本= 10.0.0.0,文化=中立,公钥= 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

参考资料我检查过:

.net c# t4 code-generation visual-studio-2010

8
推荐指数
1
解决办法
5239
查看次数

实体框架5首先使用代码进行密钥命名

当我的密钥名称(索引,主键和外键)由Add-Migration生成时,我不能有[.](句点),所以我尝试编写CSharpMigrationCodeGenerator,但不幸的是,这似乎不允许您要更改外键或索引名称.主键名称可以设置为覆盖create table的一部分:

protected override void Generate(
    CreateTableOperation createTableOperation, IndentedTextWriter writer)
    {
        createTableOperation.PrimaryKey.Name = "USE THIS NAME";
        base.Generate(createTableOperation, writer);
    }
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是一种方法来确保它刚刚删除完全停止(这意味着覆盖自定义名称生成器) - 但我看不到如何做到这一点.

c# code-generation entity-framework-5

8
推荐指数
1
解决办法
594
查看次数

如何在Haskell中使用部分顺序对列表进行排序?

我有一个使用语句块的程序EDSL.

尽管语句之间可能存在依赖关系,但这些语句没有按特定顺序添加到块中.

但是,在编译EDSL期间,我需要确保语句按依赖顺序排序,例如

B := A
C := B
E := D
Run Code Online (Sandbox Code Playgroud)

由于并非所有语句都具有依赖性,因此没有总顺序(例如,E := D上面是独立的,可以放在任何地方).没有循环依赖关系,因此列表排序应该是可能的.

我试图通过使用Data.List.sortBy和定义Ordering哪些将返回EQ意味着语句没有依赖性来破解解决方案.这适用于一些示例,但不适用于一般情况,例如,订购以下内容无效:

C := B                           B := A
D := C    = should produce =>    C := B
B := A                           D := C
Run Code Online (Sandbox Code Playgroud)

这是因为默认排序插入排序并且只确保插入的项目小于或等于下一个.

我已经在互联网上搜索了Poset实现,但没有找到任何适用的东西:

altfloat:Data.Poset定义Ordering = LT | GT | EQ | NC(NC非可比的),这是好的,但所提供的sort呈NaN样不具有可比性的项目,只是抛出他们离开.

logfloat:Data.Number.PartialOrd类似于上面的除了用途Maybe Ordering,我没有在包中的任何地方看到排序功能.

Math.Combinatorics.Poset我还没弄清楚如何使用它或它是否适用.

下面是一个包含绑定和非绑定语句的最小示例.非biniding语句的顺序很重要,并且它们必须保持原始顺序(即排序需要与没有依赖关系的语句保持稳定).

我希望有一个简单的解决方案,而不使用完整的依赖图...

module Stmts where …
Run Code Online (Sandbox Code Playgroud)

sorting haskell code-generation poset

8
推荐指数
1
解决办法
1082
查看次数