Domanda

Ho una DLL esistente che non è conforme a CLS che faccio riferimento dal mio progetto.Quando contrassegno il mio assemblaggio come conforme a CLS, ottengo avvertimenti del compilatore che i nomi nel gruppo di riferimento non sono conformi a CLS.

C'è un modo in cui posso mantenere il mio assemblaggio conforme a CLS e segnare il referenziato come no?

È stato utile?

Soluzione

Sì, la tua DLL può essere conforme a CLS tutto il tempo in cui non esporrà membri conformi a non CLS dall'assemblaggio di riferimento - cioè non li menziona in nessuno dei propri pubblici o protettimembri o tipi.(Può ancora usarli in membri e tipi e tipi privati e interni.)

Se la DLL ha bisogno di esporre i tipi direttamente dalla DLL non conforme, è possibile provare ad incapsulare quei tipi nei propri wrapper (ad esempio un metodo potrebbe restituire un MyWrapperAroundNaughtyType anziché un NaughtyType), oppure è possibile contrassegnare il relativoMembri del tuo CLSCompliant(false) API per optare solo a quei membri dal controllo del compilatore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top