Domanda

Mi chiedevo se è possibile generare un qualche tipo di modello che io do un file XML o XSL in stilo e generare codice C #

Ho fatto alcuni Cs e funziona bene, ma non ho potuto con i file csproj e SLN,

così, ecco perché chiedo

ho usato per programmare le DLL in C # è una programmazione a più livelli

È stato utile?

Soluzione

Stylus Studio comprende sia XSLT e XQuery, e con entrambi è possibile scrivere i file di testo. Così si può scrivere manualmente un file .sln, se avete la fonte corretta - perché i file .sln non sono XML. I file di progetto, come .vbproj o .csproj, sono XML e possono essere facilmente creati da Stylus Studio.

E 'questo quello che stai chiedendo?

Se si dispone di un programma di XSLT o XQuery, è possibile scegliere di generare il codice per guidare che trasformano. Si creerà un progetto di Visual Studio per voi. Per XQuery, userà il motore .Net Sassone XQuery. Per XSLT, sono supportati diversi motori XSLT diversi per .Net.

Utilizzare la "XQuery> Genera codice> Genera C # Codice ..." o "XSLT> Genera codice> Genera C # Codice ..." opzioni per creare effettivamente il codice e il file .sln addetto.

Se, tuttavia, si vuole per qualche motivo per usare XSLT all'interno di Stylus Studio per creare un file sln, ecco come si potrebbe andare su di esso.

file di input di esempio:                   FAE04EC0-301F-11D3-BF4B-00C04F79EFBC                      Cane da guardia             DB3FBB37-100C-40DD-B154-153E3F3A68FF              

file XSLT di esempio per creare .sln dall'alto .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>

Altri suggerimenti

John è corretto , si sarebbe meglio usare il blocchetto per appunti, ma c'è un rel="nofollow versione gratuita di Visual Studio 2008 che è possibile utilizzare per creare molti tipi di soluzione se non si vuole investire in una licenza. Se stai cercando di fare modello guidato la generazione di codice, dare un'occhiata alla CodeSmith .

file di soluzione di Visual Studio non sono XML, quindi non ci si aspetterebbe Stylus Studio di fare molto con loro.

Snippet di un file di soluzione:

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

A: Usa T4

T4 generazione di codice di Visual Studio creare modelli utilizzando il linguaggio di template T4 di Microsoft.

D:. Voglio generare una parte del codice per la mia applicazione e Microsoft ha un generatore di codice, t4

A: Microsoft ha una T4 strumento di generazione del codice che sta per Testo di trasformazione Templating Toolkit.

T4 viene fornito con Visual Studio 2008, oppure è possibile scaricarlo se si sta utilizzando VS 2005.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top