Маршал универсальные возвращаемые типы для com-взаимодействия
Возможно ли маршалировать универсальный тип возврата как неуниверсальный для взаимодействия COM?
Допустим, у меня есть следующий класс:
[ComVisible(true)]
public class Foo
{
public IEnumerable<string> GetStr() // Generic return type
{
yield break;
}
}
Я знаю, что IEnumerable
Могу ли я заставить tlbexp.exe (через return: attribute или каким-либо другим способом) выставить метод GetStr() как метод, возвращающий IEnumerable?
1 ответ
Решение
Я не думаю, что это возможно, нет. Когда вы устанавливаете ограничения с помощью COM-взаимодействия, обычно лучше создать отдельный тип оболочки с COM-дружественным интерфейсом и оставить исходный тип максимально дружественным к.NET.