我正在尝试从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,所以我有什么遗漏?
答案 0 :(得分:12)
我怀疑是因为您使用的是DateTime^
,而不仅仅是DateTime
。它是一种值类型,那么为什么要尝试使用引用呢?
C#没有任何方法可以表示与值类型相关联的盒装引用类型,因此它能做的最好的事情是ValueType
- 我怀疑这就是正在发生的事情,尽管我由于缺乏C ++经验,我不能肯定地说。试试DateTime
,看看它看起来如何......