我升级从2.0框架4.0框架C#web项目,我似乎有它周围的引用COM组件的一些问题。它好像什么改变了这一切,我不知道周围的互操作性展示的产生。
我收到了一些类似以下的错误,现在无需改变任何代码:
cannot convert from 'out string[]' to 'out System.Array'
对于以上这第一误差是原型:
[id(3), helpstring("method GetAllWaves")] HRESULT GetAllWaves([out] SAFEARRAY(BSTR)* ppWaves, [out,retval] ExactaStatus *Status);
下面是使用它的C#代码:
string[] arrWaves;
m_BPStatus = m_objTXPBatchPick.GetAllWaves(out arrWaves);
它好像基于我正在使用前相同的COM库的Visual Studio是现在产生不同的方法原型,它的使用,而不是特定类型的System.Array。这是新的东西在问候了4.0项目还是有在Visual Studio中一些设置我失踪的地方?
我从来没有找到除了爱情之外解决这个问题。我不得不作出以下代码更改:
Array arrWaves;
m_BPStatus = m_objTXPBatchPick.GetAllWaves(out arrWaves);
Session["arrWaves"] = arrWaves.Cast<string>().ToArray();
上述关键是要改变将其存储为.Cast<string>().ToArray()