2011-11-28 73 views
4

我有一個XSL轉換,它使用msxsl在C#中添加擴展方法。我有msxsl以下設置:使用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' 

我整個上午都撲了我的頭這一點,我只是不看到它。有任何想法嗎?

謝謝大家。

+1

你是什麼意思:「當我試圖剖析它......」?你到底在做什麼? –

+0

你在配置文件時是否運行/編譯了不同版本的.NET? –

回答

0

我有同樣的問題,顯然有模板返回的模板方法不可用於腳本編寫,只有具有像ContainsKey()和計數明確返回的方法是可用的。

相關問題