У меня есть несколько служб WCF, которые я импортировал в библиотеку классов .Net4. При создании прокси несколько перечислителей, объявленных как DataContracts, импортируются в прокси. Позже я раскрываю несколько процедур через COM Interop для использования в качестве библиотек ActiveX, и я использую импортированные перечислители в качестве параметров этих процедур.
В процедурах моей библиотеки классов я могу выставить с [ComVisible(true)]
, чтобы они могли быть вызваны через COM. Тем не менее, методы, которые имеют перечислители в качестве параметров, когда я регистрируюсь с regasm.exe, я получаю сообщение об ошибке:
Type library exporter warning processing 'xxxxxx.Method(pEnumerator),yyyyyy'. Warning: Non COM visible value type 'yyyyyy.zzzzzzz.enEnumerator' is being referenced either from the type currently being exported or from one of its base types.
Я знаю, что это происходит из-за того, что перечислители не предоставляются ComVisible, но если я добавлю необходимый параметр, поскольку они находятся в прокси, при каждом обновлении прокси они будут перезаписаны. Есть ли что-нибудь вокруг этого?
Я могу создать свои собственные перечислители внутри библиотеки классов, выставить их с помощью ComVisible и сделать switch
, чтобы сопоставить импортированные перечислители с моими созданными перечислителями. Но я бы хотел этого избежать.
ТКС за помощь