Tag: 代码生成

C#中XML Schema的代码生成有哪些限制?

我已经看到了几个关于使用xsd.exe从XML Schema生成类的问题,以及如何预先处理模式(通常使用XSLT)来解决生成之前的一些棘手问题的建议。 我的问题是,是否可以构建一个100%符合XML Schema的C#代码生成器。 xsd.exe的问题仅仅是它的实现问题,还是它们指向XML Schema和C#之间的根本不一致? 特别是 ,我对如何将XML Schema中的概念映射到C#感兴趣 – 哪些是可接受的映射,哪些映射是有争议的,是否存在本质上不可映射的XML Schema构造,是否存在未充分利用的C#构造? 是否存在可提供映射规则的合规性规范,以便可以实施和测试? 编辑:为了清楚起见,我完全清楚XML Schema不会为我提供完全实现的C#接口,我对它是否可以完全映射到C#类层次结构感兴趣。 编辑2:我添加了一笔小额奖金,因为我有兴趣获得更多细节。 编辑3:赏金仍然开放,但到目前为止走向stakx – 一个很好的答案,但主要是处理如何在XML Schema中复制C#结构,而不是相反。 虽然好的输入。

代码生成器或T4模板,它们真的很邪恶吗?

我听说人们说不应该使用代码生成器和T4模板。 这背后的逻辑是,如果您使用生成器生成代码,那么通过generics和模板构建代码有一种更好的更有效的方法。 虽然我略微同意上面的这个陈述,但我还没有真正找到有效的方法来构建模板,例如可以说实例化自己。 换句话说,我永远做不到: return new T(); 另外,如果我想基于数据库值生成代码,我发现将Microsoft.SqlServer.Management.SMO与T4模板结合使用可以很好地生成大量代码而无需复制/粘贴或使用resharper。 我在Generics中发现的许多问题都是令我震惊的是,有很多开发人员不了解它们。 当我为一个解决方案检查generics时,有时它会变得复杂,因为C#表明你不能做一些在我脑海里看似合乎逻辑的事情。 你的想法是什么? 你喜欢建造发电机,还是更喜欢使用仿制药? 此外,仿制药可以走多远? 我对generics有很多了解,但是我总是遇到陷阱和陷阱导致我使用T4模板。 处理需要大量灵活性的场景的更合适的方法是什么? 哦,作为这个问题的奖励,C#和Generics的优秀资源是什么?

T4获取解决方案的当前工作目录

我在Visual Studio 2010中使用T4,我想在我的解决方案中迭代文件,但是我发现T4源代码生成在一种沙箱中,当前工作目录在Visual Studio 10目录中在程序文件中。 有没有办法相对地引用T4文件的解决方案,以便它不会破坏构建,或者在没有相同文件结构的其他人的框中工作? 谢谢

包装类的代码生成器

你知道一个基于另一个类生成包装类的工具吗? 编辑:包装类我的意思是一个包装所有暴露(公共,受保护)属性方法事件的类,以便您可以将任何逻辑放在中间。 我的具体目的是用它来validation包装类的行为。

如何创建csproj命令行?

有没有办法从命令行创建Visual Studio模板的CS和WPF解决方案? 我写了一个C#和WPF代码生成器,我希望我的输出是一个C#解决方案。

任何好的C#代码生成器用于使用oracle存储过程?

我正在寻找一个C#代码生成器,它自动生成C#以访问Oracle数据库上的存储过程。 例如,如果我在架构DEV上有一些包,比如: PACKAGE1与FUNC1,FUN2 PACKAGE2与FUNC3,FUN4 生成器创建代码以从C#运行以下代码: int a = PACKAGE1.FUNC1(12, 34, “hello”); 任何线索?

C#正确格式化(缩进,对齐)C#

我们有一个代码生成器,它可以管理给定数据库的模式,以自动化我们的内部n层体系结构。 输出是各种C#部分类,每个文件一个。 在使用munge所有字符串的代码中,我们尝试尽可能地保持缩进和格式化,但是当你在Visual Studio中打开文件时格式化是错误的。 一个快速的ctrl-k,ctrl-d修复它,但显然这个重新格式化在下次生成类时会丢失。 我想知道的是,我是否有办法以某种方式自动格式化文本文件的内容,就像Visual Studio一样? 伪代码 Create “code” object, passing text file to constructor Invoke “format” method Re-save text file 任何帮助非常感谢。 编辑:我应该澄清 – 我希望能够从我的C#代码调用格式,创建包含我生成的C#的文本文件。 代码的格式可以标准化(不必是每个开发人员),我不想安装任何第三方应用程序。 我似乎记得有一个命名空间,其中包含用于在C#中创建C#的大量类: http : //msdn.microsoft.com/en-us/library/system.codedom(VS.80).aspx ,但我不确定如果它包含任何可以帮助的类。 进一步编辑:我的代码生成器是一个通过点击一次安装部署的winforms应用程序。 许多开发人员都在内部使用它。 我需要一个不需要每个开发人员在他们的机器上安装工具的解决方案。

在程序运行期间编译/执行XAML

我想创建一个WPF应用程序,它从数据库中检索XAML代码并显示检索到的代码。 让我们说数据库返回以下代码: 如何在运行时执行此代码(或者可能只是mainGrid的内容)?

C#代码生成器

有人可以推荐一个简单的c#代码生成器。 我只是用以下方法寻找一些东西: GenClass = CreateNewClass(AccessModifier,Name……) GenClass.Add(new Method(AccessModifier,RetType,Name….){code=@”…..”} GenClass.Add(new Property(AccessModifier,Type, Name….) ………..等 在创建所有类\方法和其他成员之后,我们称之为代码生成function(我们可以在其中指定一些参数) 有没有这样的开源代码生成器?

在进行visual studio自动化时,是否有更好的方法来处理RPC_E_CALL_REJECTEDexception?

这就是我目前正在做的事情: protected void setupProject() { bool lbDone = false; int liCount = 0; while (!lbDone && liCount < pMaxRetries) { try { pProject.ProjectItems.Item("Class1.cs").Delete(); lbDone = true; } catch (System.Runtime.InteropServices.COMException loE) { liCount++; if ((uint)loE.ErrorCode == 0x80010001) { // RPC_E_CALL_REJECTED – sleep half sec then try again System.Threading.Thread.Sleep(pDelayBetweenRetry); } } } } 现在我尝试阻止大多数调用EnvDTE的东西,它运行得很好。 我遇到的问题是当我遍历一个集合并对每个项目执行一次操作时。 foreach(ProjectItem pi […]