使用System :: DateTime参数调用C ++ / CLI方法需要'ValueType'作为参数?

时间:2010-05-31 17:39:29

标签: c# datetime c++-cli types

我正在尝试从C#调用用C ++ / CLI编写的方法。 C ++ / CLI代码用于更新Oracle数据库中的TIMESTAMP列,给定记录ID和System::DateTime对象,该对象是Oracle TIMESTAMP类型的.NET兼容数据类型。

我调用的方法有以下原型:

bool ChangeJobUpdateDate (int jobIdIn, System::DateTime^ updateDateIn)

我在我做的测试项目中添加了对这个DLL项目的引用;我正在用C#编写测试。但是,当我尝试从C#单元测试项目调用此方法时,该函数似乎具有以下方法声明(通过intellisense):

bool ChangeJobUpdateDate (int jobIdIn, ValueType updateDateIn)

我当然不熟悉C ++ / CLI,所以我有什么遗漏?

1 个答案:

答案 0 :(得分:12)

我怀疑是因为您使用的是DateTime^,而不仅仅是DateTime。它是一种值类型,那么为什么要尝试使用引用呢?

C#没有任何方法可以表示与值类型相关联的盒装引用类型,因此它能做的最好的事情是ValueType - 我怀疑这就是正在发生的事情,尽管我由于缺乏C ++经验,我不能肯定地说。试试DateTime,看看它看起来如何......