我將代碼從VSTO移動到ExcelDna,並遇到奇怪的錯誤。將默認數組參數設置爲空的C#COM函數
我在Visual Studio中創建了一個新的項目,它將包含我以前的VSTO函數。爲了生成.tlb文件,我將在Excel VBA參考以訪問VBA中的這些功能,我查了選項「註冊爲COM互操作」
對於一個功能我有錯誤:
「程序集」C:\ MyProj.dll「無法轉換爲類型庫。類型庫導出程序在處理'GetArrayObject'時遇到錯誤。錯誤:類型不匹配。」
在COM可見接口的功能GetArrayObject的定義是:
[ComVisible(true)]
//[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IAddInUtilities
{
object[,] GetArrayObject(string[] rows = null);
}
下定義的工作原理:
object[,] GetArrayObject(string[] rows);
它是在COM一個已知的限制?它可能是由於C++的限制(Default values for array arguments)?是否有一個原因適用於VSTO而不是COM?
非常感謝您的幫助