动态COM对象1索引数组InvalidCastException错误

时间:2012-09-18 14:34:28

标签: c#-4.0 dynamic com

我有一个在C#.NET 4.0应用程序中使用的COM API。

代码如下所示:

if (!object.ReferenceEquals((comObject.Value), null))
{
   // Do something
}

其中comObject的类型为System.__ComObject,而Value的类型为dynamic

一般情况下,这样可以正常工作,但是当Value的实际类型是一个字节数组时,它会抛出以下InvalidCastException异常:

   Unable to cast object of type 'System.Byte[*]' to type 'System.Byte[]'.

   at CallSite.Target(Closure , CallSite , Type , Object , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at ReMetricaTypeSpike.Program.Main(String[] args) in c:\my documents\visual studio 2010\Projects\ReMetricaTypeSpike\ReMetricaTypeSpike\Program.cs:line 28
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

这个线程http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/24c0bd62-058a-487e-91ab-ed1bb0b0cca4似乎表明抛出了异常,因为数组是基于1的(它是 - 我认为API是用VB编写的)。但是,我从来没有使这个演员明确,这完全由动态自动代码处理。

这是C#动态的已知错误吗?或者还有其他事情发生了吗?

0 个答案:

没有答案