Visualizzazione dei risultati da 1 a 4 su 4

Discussione: istanziare classi c#

  1. #1

    istanziare classi c#

    Buongiorno a tutti
    Ho un problema che vi espongo e spero che possiate illuminarmi e indicarmi la dritta via

    Ho creato una dll che dovrebbe occuparsi della connessione al database e altre funzioni inerenti.

    In questa dll ci sono principalmente 2 classi. Una per la gestione del DB MYSQL ed una che gestisce il DB SQL SERVER.

    Già questa, non sono sicuro che sia la soluzione perfetta.
    Comunque adesso, dal mio progetto windows form, aggiungo il riferimento alla dll che si preoccupa di gestire le interazioni con il DB, e vorrei istanziare una classe piuttosto che un'altra a seconda se l'utente abbia preferito lavorare su un DB MYSQL o un DB SQL SERVER.
    quindi un'impostazione presente nel config

    Come posso risolvere ?Help me :up

  2. #2
    Ovviamente per evitare ogni volta di controllare se devo instanziare una classe piuttosto che un'altra XD

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Ci sono diversi metodi per avere questo risultato. Il late binding è uno di questi, la chiave del suo funzionamento sono le interface.

    Mettiamo che ti abbia due classi DatabaseBridge1 e DatabaseBridge2
    Entrambe le classi hanno le stesse funzionalità per cui devi estrarre queste funzionalità in un interfaccia diciamo IDatabaseBridge. Ora le due classi implementano la stessa interfaccia.

    A questo punto nella classe che deve istanziare la classe Bridge dichiari una proprietà di tipo IDataBaseBridge, leggi attraverso ConfigurationManager l'impostazione dell'utente e in base a questa crei un istanza della classe concreta giusta.

    codice:
    private IDatabaseBridge bridge;
    
    public Costruttore()
    {
      string scelta = ConfigurationManager.AppSettings["DBBridge"].ToString();
      if (scelta.Equals("MYSQL"))
        bridge = new DatabaseBridge1();
      else
        bridge = new DataBaseBridge2();
    }
    Nel codice puoi usare solo i metodi dichiarati nell'interfaccia e che descrivono le funzionalita che il bridge dovrebbe avere al di la dell'implementazione specifica. Questa non vederla come una limitazione ma come un binario da seguire per scrivere un codice migliore.

  4. #4
    Ti ringrazio della risposta... provo a seguire le tue indicazioni

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.