我们正在将一个程序集暴露给COM.
除了别的以外,我们使用诸如long?,DateTime?等可空值,这些是通用类型,不能暴露于COM.
什么是COM的这些数据类型的好替代品?
我们尝试了以下几点:
//Original CustomerID property in class public long? CustomerID { get; set; } //Explicit COM interface long IComInterface.CustomerID { get { return CustomerID.GetValueOrDefault(); } set { CustomerID = value; } }
问题是,我们需要一种通过COM来传递“null”的方法.使用-1或0的数字将不起作用,因为它们也是有效的值.
我们不得不使用这些最初来自我们的数据库模式的可空对象.