Pregunta

Me preguntaba si es posible generar algún tipo de plantilla que le doy un archivo XML o XSL en lápiz y generar código C #

i hecho algunos .cs y trabaja muy bien, pero no podía con los archivos csproj y sln,

Por lo tanto, es por eso que estoy pidiendo

i solía DLL en C # programar es una programación de n niveles

¿Fue útil?

Solución

Stylus Studio incluye tanto XSLT y XQuery, y con cualquiera puede escribir archivos de texto. Para que pueda escribir manualmente un archivo .sln, si usted tiene la fuente correcta - porque los archivos .sln no son XML. Los archivos de proyecto, como .vbproj o .csproj, son XML y pueden ser fácilmente creados por Stylus Studio.

¿Eso es lo que están pidiendo?

Si usted tiene un programa XQuery o XSLT, se puede optar por generar código para conducir esa transformación. Se va a crear un proyecto de Visual Studio para usted. Para XQuery, utilizará el motor .Net Saxon XQuery. Para XSLT, varios motores XSLT diferentes para .Net son compatibles.

Utilice la opción "XQuery> Generar código> Generar código C # ..." o "XSLT> Generar código> Generar código C # ..." opciones para realmente crear el código y archivo .sln operadora.

Sin embargo, si usted desea por alguna razón para usar XSLT interior de Stylus Studio para crear un archivo .sln, aquí es cómo se puede ir sobre ella.

archivo de entrada de la muestra:                   FAE04EC0-301F-11d3-BF4B-00C04F79EFBC                      Perro guardián             DB3FBB37-100C-40DD-B154-153E3F3A68FF              

archivo XSLT de ejemplo para crear .sln desde arriba .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>

Otros consejos

Juan es correcta , sería mejor usar el bloc de notas, pero hay un rel="nofollow versión gratuita de Visual Studio 2008 que se puede utilizar para crear muchos tipos de solución si no desea invertir en una licencia. Si usted está tratando de hacer con plantillas de generación de código, echar un vistazo a CodeSmith .

Los archivos de solución de Visual Studio no son XML, por lo que no se puede esperar Stylus Studio para hacer mucho con ellos.

De fragmentos de un archivo de solución:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpsUrlWithPort", "HttpsUrlWithPort\HttpsUrlWithPort.csproj", "{9FD67B56-9D49-4989-89D0-06A29ACAA5A3}"
EndProject

R: Usa T4

Generación de código T4 de Visual Studio crear plantillas usando el lenguaje de plantillas T4 de Microsoft.

Q:. Quiero generar una parte del código para mi aplicación y Microsoft tiene un generador de código, t4

R: Microsoft tiene una herramienta T4 de generación de código que representa la transformación de texto Kit de herramientas de plantillas.

T4 viene con Visual Studio 2008, o se puede descargar si estás utilizando VS 2005.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top