Question

Je veux utiliser la méthode d'état, mais je ne comprends pas comment cela fonctionne. Quelqu'un pourrait-il me montrer un exemple d'utilisation s'il vous plaît?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
Était-ce utile?

La solution

Eh bien, ça va marcher exactement comme la commande svn status: http: / /svnbook.red-bean.com/en/1.0/re26.html

Vous obtiendrez la liste des fichiers pompés au gestionnaire d'événements:

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'
}

Autres conseils

Ou si vous ne me dérange pas les délégués inline:

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

Notez que les versions de déléguer des fonctions SharpSvn sont toujours un (petit) peu plus vite que les révisions retourne une collection car cette méthode permet marshalling la moindre quantité d'informations au monde géré. Vous pouvez utiliser Svn * EventArgs.Detach () pour marshall tout de toute façon. (C'est ce que les fonctions .GetXXX () font en interne)

La version de délégué en ligne a fonctionné pour moi, mais la version EventHandler<T> n'a pas fonctionné jusqu'à ce que je mets le type à EventHandler<SvnStatusEventArgs>.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top