Domanda

Vorrei utilizzare il metodo di stato, ma io non capire come funziona. Potrebbe qualcuno mi mostra un esempio di utilizzo per favore?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
È stato utile?

Soluzione

Bene, funzionerà esattamente come il comando svn status: http: / /svnbook.red-bean.com/en/1.0/re26.html

Si otterrà l'elenco dei file pompati al EventHandler:

using(SvnClient client = /* set up a client */ ){
    EventHandler<SvnStatusEventArgs> statusHandler = new EventHandler<SvnStatusEventArgs>(HandleStatusEvent);
    client.Status(@"c:\foo\some-working-copy", statusHandler);
}

...

void HandleStatusEvent (object sender, SvnStatusEventArgs args)
{
    switch(args.LocalContentStatus){
        case SvnStatus.Added: // Handle appropriately
            break;
    }

    // review other properties of 'args'
}

Altri suggerimenti

O se non ti dispiace delegati in linea:

using(SvnClient client = new SvnClient())
{
   client.Status(path,
                 delegate(object sender, SvnStatusEventArgs e)
                 {
                    if (e.LocalContentStatus == SvnStatus.Added)
                       Console.WriteLine("Added {0}", e.FullPath);
                 });
}

Si noti che le versioni delegato delle funzioni SharpSvn sono sempre un (piccolo) po 'più veloce rispetto alle revisioni restituisce un insieme in quanto questo metodo consente di smistamento la minor quantità di informazioni al mondo gestito. È possibile usare svn * EventArgs.Detach () per marshall tutto comunque. (Questo è ciò che il .GetXXX () funzioni fanno internamente)

La versione in linea delegato ha funzionato per me, ma la versione EventHandler<T> non ha funzionato fino a quando ho impostato il tipo di EventHandler<SvnStatusEventArgs>.

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