现在我可以在我的 XSLT 文件中很好地包含 C# 代码,并且我在整个 XSLT 文件中引用它没有任何问题。
XSLT 文件:
<xsl:import href="secondXSLFile.xsl" />
带有 C# 代码的 XSLT 文件(secondXSLFile.xsl):
<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:script block 中获得智能感知,那么对于我的目的来说,这也很好!
感谢您的帮助!
快速编辑:我基本上想知道我是否可以做这样的事情:
<xsl:import href="mycode.cs" />
最佳答案
您是否知道 XslCompiledTransform
有另一种调用 .NET 代码的机制,即 extension objects ?然后您将编写 C# 或 VB 代码文件,在您的 IDE 中编译它们并将实例或静态类传递给 XslCompiledTransform
Transform
方法,使用 http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addextensionobject%28v=vs.110%29.aspx .这样您就可以分离 C# 和 XSLT 代码。正如您提到的 ASP.NET,我必须指出 ASP.NET xml
控件使用 XslTransform
,而不是 `XslCompiledTransform,因此取决于您在 ASP 中使用 XSLT 的方式。 NET,您需要检查与我链接到的 API 不同的 API。
关于c# - 在我的 XSL 文件中包含一个 C# (.cs) 文件以便我可以使用智能感知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619070/