Se
scrivete controlli windows forms vi sarà probabilmente capitato di volerli
proteggere da utilizzi inautorizzati e quindi immagino vi sarete creati una
libreria in cui definite un LicenseProvider ereditato da
System.ComponentModel.LicenseProvider. Per poi assegnare il custom
LicenseProvider al vostro controllo avrete usato
System.ComponentModel.LicenseProviderAttribute. Bene, tutto fila liscio finché
non vi verrà in mente di esporre il vostro controllo a dei client
COM.
Purtroppo l'assembly con il vostro LicenseProvider non verrà più
caricato da System.ComponentModel.LicenseManager. Giustamente, il caricamento di
un assembly per la licenza NON é customizzabile tramite
AppDomain.AssemblyResolve (la verifica della licenza avviene in un altro
appDomain??), quindi, IMHO, non rimane altro che ricorrere ad uno "sporco
trucco".
Ereditate il vostro
custom LicenseProvider in una classe dello stesso assembly che richiede la
licenza. In questa maniera:
Friend Class LicenseProvider
Inherits
MyAssembly.LicenseProvider
End Class
ed ovviamente impostate
l'attributo
System.ComponentModel.LicenseProviderAttribute
al
LicenseProvider locale.
Se qualcuno ha idee
migliori da proporre si faccia avanti please...