我在Visual Studio 2008中使用类图来创建一些具有属性的类.我注意到,当我在类图中创建一个新属性时,它出现在这样的代码中:
public DateTime DateBilled
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}
Run Code Online (Sandbox Code Playgroud)
呸.我更倾向于它最终成为这样的autoproperty:
public DateTime DateBilled { get; set; }
Run Code Online (Sandbox Code Playgroud)
有什么方法可以改变或定制吗?
c# code-generation class-diagram visual-studio-2008 visual-studio
可能重复:
自动生成.NET单元测试
嘿伙计们,我对单元测试很新,所以请耐心等待.
我意识到最好的最佳实践不是自动生成单元测试,但是我想使用代码生成来设置测试的基本框架.
现在,我知道Visual Studio 2008已经内置了"创建测试",但是,它只是创建了一个它要测试的所有类的平面列表......而且它不适合NUnit吗?
理想情况下,我希望代码生成遵循其生成测试的程序集的文件夹AND名称空间结构.
你们能推荐一些能在Visual Studio 2008中为.NET程序集生成NUnit单元测试的好工具吗?
干杯!
我已经在资源和其他SO问题中看到了关于从覆盖率统计中提取代码的问题[DebuggerNonUserCode]和[ExcludeFromCodeCoverage]属性,并想知道是否可以自动将此属性添加到使用.NET 4.0的实体框架生成的代码中的类.
它还需要是类级别还是可以在diagram.Designer.cs级别上,需要一个属性来生成该图生成的所有代码?
unit-testing code-generation entity-framework code-coverage .net-4.0
有几个JIT库,但有没有发出Motorola 68000样式指令,例如68000,68040,68060或任何Coldfire CPU?
奖励积分如果它也可以为其他平台发射,但68k是最重要的.
容易与C集成的东西是首选,但其他语言也很有趣.
理想情况下像libjit,但有68k后端.
我正在开发一个项目,我有一个webservice模块和一个webmodule.我希望基于webservice的wsdl文件生成客户端,并且我希望在构建webservice模块时生成wsdl文件.
我找到了maven插件来做到这一点(axis2-java2wsdl-maven-plugin和axis2-wsdl2code-maven-plugin),但是axis2-java2wsdl-maven-plugin一直为wsdl文件生成无效的xsd(我认为它在最小).
webservice从其方法返回一些枚举,或返回包含枚举的对象.生成wsdl文件时,我得到对"xs:Enum"的引用,这两个枚举类型在给定的命名空间中不存在.我有几个,但只有两个得到这个base ="xs:Enum".
<xs:complexType name="LoginType">
<xs:complexContent>
<xs:extension base="xs:Enum">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
因此,当使用axis2-wsdl2code-maven-plugin构建客户端模块时,我收到以下错误:
error: src-resolve: type 'Enum@http://www.w3.org/2001/XMLSchema' not found.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它一直生成无效的XSD!
背景:
我们在.NET C#解决方案中使用第三方工具.此工具具有自己的语法并与Visual Studio集成.当我们使用这个工具时,我们在Visual Studio中编写它的标记,然后当我们构建解决方案时,自定义工具运行并根据我们编写的标记生成.cs文件.
生成的源文件包含一个版本号,当我们将这些版本控制到版本控制时会产生问题(无休止的冲突).我们的理解是,最好不要检查生成的源文件.
因此我们从SVN中排除了生成的.cs文件,然后我们遇到的下一个问题是Visual Studio解决方案引用了这些文件,因此当TeamCity(我们的持续构建/集成软件)去构建解决方案时,它会立即失败因为它找不到这些文件.
然后我们从解决方案中删除了这些并将它们从SVN中排除,这解决了原始问题,我们不再检查生成的代码,并且它在TeamCity中构建良好(因为文件是在每次构建时重新生成的).
我们现在遇到了一个新问题 - 由于生成的文件不再包含在解决方案中,因此无法找到生成的类,因此智能感知和代码检查失败.解决方案构建得很好(再次在构建期间重新生成代码).
题
有没有办法告诉ReSharper在代码检查中包含生成的.cs文件?这些文件在解决方案外部,但它们位于obj目录中.
干杯,
泰勒
c# resharper intellisense code-generation visual-studio-2010
我正在开发一些代码生成器,用于生成基于数据库表的模型,控制器和视图,因此我可以创建一个Asp.Net MVC3网站.我现在可以使用CodeDOM生成模型和控制器但是为了生成视图,我需要制作模板的东西,比如从.cs生成.cshtml,我认为T4会是个好主意,但我的一些同事坚持不使用T4,是还有其他方法吗?谢谢
我应该提一下,我在C中生成代码,而不是手动执行此操作.我之所以这样说是因为它背后有很多代码并不重要,因为编译器应该管理它.无论如何,我将如何在C中模拟lambda?我以为我可以在源代码中的某处生成一个带有随机名称的函数然后调用它?我不太确定.我还没有真正尝试过任何东西,因为我想在实现它之前把想法弄清楚.
是否有某种预处理器指令可以做,或者某些宏可以使这个更清洁?我受到了Jon Blow的启发,尝试编译器开发,他似乎用他的语言Jai实现了Lambdas.但是,我认为他做了一些事情,他生成字节码,然后进入C?我不确定.
编辑:我正在编写一个编译器,编译器只是我的一个项目让我忙碌,而且我想了解更多有关编译器的知识.我主要使用clang,我使用的是Ubuntu 14.10.我没有任何垃圾收集,但我想尝试使用某种智能指针-y/rust/ARC启发的内存模型来进行垃圾收集,即几乎没有开销.我选择C是因为我想更多地涉足它.我的项目是免费软件,只是一个爱好项目.
我正在尝试使用Roslyn创建一个小代码生成器,或者现在称为.NET编译器平台,我使用的是encodeom,这很麻烦,但是MSDN得到了参考,现在Roslyn几乎没有文档,所有文档都专注于代码分析代替代码生成.所以我的问题很简单:如何创建类似的东西:
private const string MyString = "This is my string";
Run Code Online (Sandbox Code Playgroud)
使用Compiler Platform类?我找到了类似FieldDeclarationSyntax和ExpressionSyntax的东西,但是我发现的所有样本都生成了Myclass myvariable = new Myclass(); 并没有什么能告诉我如何生成字符串类型声明这么简单.任何线索都会很棒.先感谢您
我有以下部分代码,用于根据面向客户的讲习班等使用的excel文件生成数据合同。
private PropertyDeclarationSyntax[] GenerateProperties()
{
var props = new List<PropertyDeclarationSyntax>();
props.Add(SF.PropertyDeclaration(SF.ParseTypeName("IMigrationInformation"), "MigrationInformation")
.AddModifiers(SF.Token(SyntaxKind.PublicKeyword), SF.Token(SyntaxKind.OverrideKeyword))
.AddAccessorListAccessors(
SF.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration)
.WithBody(SF.Block(SF.ReturnStatement(SF.ObjectCreationExpression(SF.ParseTypeName($"{Form.RegistryName}MigrationInformation")))))
));
foreach (var field in Form.AllDataFields().Where(f => f.FieldTypeInfo != null))
{
props.Add(SF.PropertyDeclaration(SF.ParseTypeName(field.FieldTypeInfo.BackingType.Name), field.SafeName)
.AddModifiers(SF.Token(SyntaxKind.PublicKeyword))
.AddAccessorListAccessors(
SF.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SF.Token(SyntaxKind.SemicolonToken)),
SF.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration).WithSemicolonToken(SF.Token(SyntaxKind.SemicolonToken))
));
}
return props.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
该代码通过一个小障碍就可以很好地工作。生成的代码如下所示:
public string VariableName
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
我真的希望它看起来像这样:
public string VariableName { get; set; }
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
code-generation ×10
c# ×5
c ×2
roslyn ×2
unit-testing ×2
.net ×1
.net-4.0 ×1
68000 ×1
intellisense ×1
jit ×1
lambda ×1
maven-2 ×1
nunit ×1
resharper ×1
templates ×1
web-services ×1
wsdl ×1