我们正在努力将一个程序集暴露给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这样的数字是行不通的,因为这些也是有效的值。我们必须使用可空类型,因为这些最初来自我们的数据库架构。
Nullable<T>
是一个结构体。 - Cecil Has a Name