4

status メソッドを使用したいのですが、その仕組みがわかりません。誰かが私に使用例を見せてもらえますか?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
4

3 に答える 3

3

または、インライン デリゲートを気にしない場合:

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

SharpSvn 関数のデリゲート バージョンは、リビジョンがコレクションを返すよりも常に (わずかに) 少し高速であることに注意してください。Svn*EventArgs.Detach() を使用して、とにかくすべてをマーシャリングできます。(これは .GetXXX() 関数が内部で行うことです)

于 2010-03-15T12:39:34.777 に答える
3

まあ、それはsvn statusコマンドとまったく同じように機能します: http://svnbook.red-bean.com/en/1.0/re26.html

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'
}
于 2010-03-15T11:25:14.107 に答える
1

インラインデリゲートバージョンは機能しましたがEventHandler<T>、タイプをに設定するまでバージョンは機能しませんでしたEventHandler<SvnStatusEventArgs>

于 2011-08-03T18:31:10.513 に答える