Wrappare una classe [C#]

venerdì 29 agosto 2008 - 12.11

liveforever81 Profilo | Junior Member

Salve a tutti!

Mi è stato chiesto di wrappare (io appena sentito 'sto termine: :madai!?:) una classe.

Da quanto ho capito spulciando il web, dove lavoro fanno uso di un prodotto che è proprietario e quindi non hanno i sorgenti.

Ho quindi pensato che wrappare una classe (nello specifico una API di questo prodotto) in questo caso volesse dire implementare in linea di massima la stessa classe, con proprietà e metodi di cui, essende il prodotto proprietario, non posso vederne l'implementazione ma solo la dichiarazione.

In tal modo si avrebbe una implementazione "ad-hoc" di tale API.

E' giusto come ragionamento?

Nello specifico, devo implemente un metodo chiamato Compare (restituisce void) nella API, il quale altro non fa che comparare 2 stringe in ingresso.

Nell'API, il metodo Compare ha 3 campi: stringa1, tipoDiCompare, stringa2.

tipoDiCompare può essere Equal, Greater, Less, NotEquale...etc.

Come lo implementereste voi se il PRIMO ragionamento è esatto?

Grazie! ;-)

schifidus Profilo | Junior Member

Beh Quando devi wrappare una dll già presente significa che crei una tua classe con metodi e proprietà ceh rispecchiano quelli della dll e magari ne aggiungono funzionalità..
per farti un esempio il + classico dei casi in cui si wrappa una dll è per passare da codice unmanaged a codice managed .
Quindi semplicemete fai i tuoi metodi che chiamano i metodi della dll..
Supponendo che tipocomparer sia un enumerator..

una cosa del genere

bool compare (string a , string b , tipoComparer comparer)
{
switch(comparer)

case greater: if(a>b)return true;break;
.....

default return false;

Ciao
}
Marco Farina
MCTS .NET Framework 2.0 Web Applications
MCPD Web Applications
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5