Ответ 1
Как использовать Variant (VT_DATE) на стороне COM? Если вы объявляете объект как объект, вы должны иметь возможность передавать DateTime или null, а COM-интерфейс должен обрабатывать его в порядке. Подробнее см. Ниже в MSDN.
Мы работаем над разоблачением сборки 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; }
}
Проблема в том, что нам нужен способ передать "null" вперед и назад через COM. Использование числа, такого как -1 или 0, не будет работать, потому что это также допустимые значения.
Нам нужно использовать nullables b/c, изначально полученные из нашей схемы базы данных.
Как использовать Variant (VT_DATE) на стороне COM? Если вы объявляете объект как объект, вы должны иметь возможность передавать DateTime или null, а COM-интерфейс должен обрабатывать его в порядке. Подробнее см. Ниже в MSDN.