質問

私は、ステータスメソッドを使用したいが、私はそれがどのように機能するかを理解しません。誰かが私の使用例を示してくださいもらえますか?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
役に立ちましたか?

解決

まあ、それは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'
}

他のヒント

それとも、インラインでデリゲートを気にしない場合:

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()関数は、内部で何をすべきかである)

インラインデリゲートのバージョンは私のために働いたが、私はEventHandler<T>するタイプを設定するまでEventHandler<SvnStatusEventArgs>のバージョンは動作しませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top