現在我可以在我的XSLT文件中包含C#代碼,並且我在整個XSLT文件中都沒有問題引用它。在我的XSL文件中包含一個C#(.cs)文件,以便我可以使用intellisense?
XSLT文件:
<xsl:import href="secondXSLFile.xsl" />
XSLT文件(secondXSLFile.xsl)與C#代碼:
<msxsl:script implements-prefix="myCode" language="C#">
<![CDATA[
public string ACoolFunction(string str1, string str2)
{ //some code }
]]>
</msxsl:script>
然而,當我在Visual Studio中,我在第二XSLT編輯C#代碼上面的文件,我沒有在代碼中獲得智能感知。所以,我的問題是這樣的:是否可以在上面的第一個XSLT中引用實際的.cs文件,而不是引用第二個XSLT文件?這樣我就可以在Visual Studio中打開我的.cs文件,並在那裏使用它。這將是一個非常大的文件,具有很多功能,所以這會更容易。
或者,如果有一種方法可以簡單地在msxsl:腳本塊中獲得智能感知,那麼對我的目的來說,這樣做也可以!
感謝您的幫助!
快速編輯:我基本上是想知道如果我可以做這樣的事情:
<xsl:import href="mycode.cs" />
我無意中標記了asp.net。這是一個非常大的後端項目,可以遍歷許多xsl文件並創建許多單獨的xml文件。我對此很陌生,但是我看到大量的重複代碼以及醜陋而冗長的xpath代碼,我希望通過C#更漂亮並希望更高效。所有這些都說了,我不知道你剛剛說了些什麼。我甚至沒有看到所有這些xsl文件的代碼。這聽起來像是從你所說的那樣,我應該去了解這件事情是如何真正被驅動的,然後挖掘到這個應用程序? – RandyWhirl
@RandyWhirl,是的,檢查XSLT是如何執行的,通常你會使用'XslCompiledTransform'來做到這一點,並且你可以選擇使用擴展對象而不是'ms:script'來調用你的.NET代碼。 –
這絕對是最好的答案,即使它是唯一的答案,謝謝!我去做了一些挖掘工作,並找到了推動整個過程的應用程序。得到它的代碼。在那裏,我非常清楚地看到在for循環中調用XSL文件的幾行代碼。這是我將要添加代碼的地方,您將這些代碼鏈接到我,以便我可以將類傳遞給XSL並允許它利用該功能。謝謝! – RandyWhirl