在mxsl中使用程序集和名称空间发出问题



我有一个XSL转换,它使用msxsl在c#中添加扩展方法。我对msxsl:

进行了如下设置
<msxsl:script language="C#" implements-prefix="cs">
    <msxsl:assembly name="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <msxsl:assembly name="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <msxsl:using namespace="System.Collections.Generic" />
    <msxsl:using namespace="System.Linq" />
    <msxsl:using namespace="System.Xml.Linq" />
然后我有一个c#函数作为扩展方法:
public int returnUniqueCount(string theCodeCollection) {
      // calculate and return the total number of distinct codes
      if (theCodeCollection.Length > 0) {
        string[] myObject = theCodeCollection.Split('|');
        string[] uniqueCollection = myObject.Distinct().ToArray();
        return uniqueCollection.Length;
      } else {
        return 0;
      }
    }

本质上,它只是接受一个标记化的字符串,将其拆分,并计算结果集,不包括重复项。

转换在服务器上运行良好,但当我试图配置它时,我得到以下错误:

'System.Array' does not contain a definition for 'Distinct'

我整个早上都在拼命想这件事,就是没看到。什么好主意吗?

谢谢。

我也有同样的问题,显然具有模板返回的模板方法不可用于脚本,只有具有不同返回的方法,如ContainsKey()和Count可用。

相关内容

  • 没有找到相关文章

最新更新