Маршал универсальные возвращаемые типы для com-взаимодействия

Возможно ли маршалировать универсальный тип возврата как неуниверсальный для взаимодействия COM?

Допустим, у меня есть следующий класс:

[ComVisible(true)]
public class Foo
{
    public IEnumerable<string> GetStr() // Generic return type
    {
        yield break;
    }
}

Я знаю, что IEnumerable реализует IEnumerable.

Могу ли я заставить tlbexp.exe (через return: attribute или каким-либо другим способом) выставить метод GetStr() как метод, возвращающий IEnumerable?

1 ответ

Решение

Я не думаю, что это возможно, нет. Когда вы устанавливаете ограничения с помощью COM-взаимодействия, обычно лучше создать отдельный тип оболочки с COM-дружественным интерфейсом и оставить исходный тип максимально дружественным к.NET.

Другие вопросы по тегам