Domanda

Sto costruendo una serie di assiemi che devono funzionare sia su Silverlight che su WPF. Fino ad ora, ho usato log4net per gestire la registrazione. Tuttavia, non è compatibile con Silverlight, quindi ora sto affrontando la prospettiva di strapparlo, cosa che non voglio fare.

La mia domanda è questa. Supponendo di ricreare gli assembly come assembly Silverlight, potrei racchiudere (usando #ifdef o simili) le chiamate di registrazione. Tuttavia, esiste un modo per fare riferimento "condizionalmente" alla dll log4net? Sono riluttante a rinunciare a log4net e preferirei non dover avere due versioni di ogni progetto.

Qualsiasi aiuto sarebbe apprezzato.

È stato utile?

Soluzione

Per le mie classi di codice comuni le aggiungo al progetto Silverlight usando l'opzione Aggiungi come link. Uso alcuni ifdefs, ma se possibile cerco di starne alla larga. Per cose come log4net creo una "shell" interfaccia per il gruppo Silverlight. Di seguito è quello che ho attualmente per log4net.

namespace log4net
{
    public class ILog
    {
        public void Debug(string message)
        { }

        public void Error(string message)
        { }

        public void Info(string message)
        { }

        public oid Warn(string message)
        { }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top