0

我想知道是否可以生成某种模板,我在手写笔中给出一个 xml 或 xsl 文件并生成 c# 代码

我做了一些 .cs 并且工作正常,但我不能使用 csproj 和 sln 文件,

所以,这就是我问的原因

我以前在 c# 上编程 dll 是一个 n 层编程

4

4 回答 4

1

John 是对的,您最好使用记事本,但如果您不想投资许可证,可以使用Visual Studio 2008 的免费版本创建多种类型的解决方案。如果您尝试进行模板驱动的代码生成,请查看CodeSmith

于 2009-07-13T23:45:25.653 回答
1

Stylus Studio包括 XSLT 和 XQuery,您可以使用其中任何一个编写文本文件。.sln因此,如果您有正确的来源,您可以手动编写文件 - 因为.sln文件不是 XML。项目文件,如.vbproj.csproj,是 XML,可以通过 Stylus Studio 轻松创建。

这就是你要问的吗?

如果您有 XSLT 或 XQuery 程序,您可以选择生成代码来驱动该转换。它将为您创建一个 Visual Studio 项目。对于 XQuery,它将使用 .Net Saxon XQuery 引擎。对于 XSLT,支持 .Net 的几种不同 XSLT 引擎。

使用“XQuery > Generate Code > Generate C# Code...”或“XSLT > Generate Code > Generate C# Code...”选项来实际创建代码和伴随.sln文件。

但是,如果出于某种原因您确实想在 Stylus Studio 中使用 XSLT 来创建 .sln 文件,那么您可以按照以下方式进行操作。

示例输入文件:FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 看门狗 DB3FBB37-100C-40DD-B154-153E3F3A68FF

.sln从上面创建的示例 XSLT 文件.xml

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>

    <xsl:template match="/">
        <xsl:text>&#xD;&#xA;</xsl:text>
        <xsl:text>Microsoft Visual Studio Solution File, Format Version 10.00&#xD;&#xA;</xsl:text>
        <xsl:text># Visual Studio 2008&#xD;&#xA;</xsl:text>
        <xsl:apply-templates select="projects/project" mode="a"/>
        <xsl:text>Global&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(SolutionConfigurationPlatforms) = preSolution&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;Debug|Any CPU = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;Release|Any CPU = Release|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(ProjectConfigurationPlatforms) = postSolution&#xD;&#xA;</xsl:text>
        <xsl:apply-templates select="projects/project" mode="b"/>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(SolutionProperties) = preSolution&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;HideSolutionNode = FALSE&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>EndGlobal&#xD;&#xA;</xsl:text>
    </xsl:template>

    <xsl:template match="project" mode="a">
        <xsl:text>Project("{"</xsl:text>
        <xsl:value-of select="../guid"/>
        <xsl:text>}") = "</xsl:text>
        <xsl:value-of select="name"/>
        <xsl:text>", "</xsl:text>
        <xsl:value-of select="name"/>
        <xsl:text>\</xsl:text>
        <xsl:value-of select="name"/>
        <xsl:text>.csproj", "{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}"&#xD;&#xA;</xsl:text>
        <xsl:text>EndProject&#xD;&#xA;</xsl:text>
    </xsl:template>

    <xsl:template match="project" mode="b">
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Debug|Any CPU.ActiveCfg = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Debug|Any CPU.Build.0 = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Release|Any CPU.ActiveCfg = Release|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Release|Any CPU.Build.0 = Release|Any CPU&#xD;&#xA;</xsl:text>
    </xsl:template>
</xsl:stylesheet>
于 2009-07-13T23:51:08.997 回答
0

Visual Studio 解决方案文件不是 XML,所以我不希望 Stylus Studio 对它们做太多事情。

解决方案文件的片段:

Microsoft Visual Studio 解决方案文件,格式版本 10.00
# 视觉工作室 2008
项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“HttpsUrlWithPort”,“HttpsUrlWithPort\HttpsUrlWithPort.csproj”,“{9FD67B56-9D49-4989-89D0-06A29ACAA5A3}”
结束项目
于 2009-07-13T23:29:27.293 回答
0

- 答:使用t4!

Visual Studio 的 T4 代码生成使用 Microsoft 的 T4 模板语言创建模板。

问:我想为我的应用程序生成一些代码,Microsoft 有一个代码生成器 t4。

答:Microsoft 有一个代码生成工具 T4,它代表 Text Transformation Templating Toolkit。

T4 附带 Visual Studio 2008,如果您使用的是 VS 2005,也可以下载它。

于 2010-02-26T23:18:43.277 回答