C # - Хороший способ выставить Nullable <T> для COM
Мы работаем над раскрытием сборки для 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. Использование числа, такого как -1 или 0, не будет работать, потому что это также допустимые значения.
Мы должны использовать Nullables B / C, они изначально пришли из нашей схемы базы данных.