gpt4 book ai didi

C# - 将 Nullable 公开给 COM 的好方法

转载 作者:可可西里 更新时间:2023-11-01 09:10:40 24 4
gpt4 key购买 nike

我们正在努力向 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 之类的数字将不起作用,因为它们也是有效值。

我们不得不使用可空值 b/c 这些最初来 self 们的数据库模式。

最佳答案

在 COM 端使用 Variant (VT_DATE) 怎么样?如果将成员声明为对象,则应该能够传递 DateTime 或 null 并且 COM 互操作应该可以正常处理它。有关详细信息,请参阅 MSDN 上的以下内容。

Marshaling Object to Variant

关于C# - 将 Nullable<T> 公开给 COM 的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1987261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com