题
我想使用的状态的方法,但我不明白它是如何工作的。有人能告诉我使用的例子吗?
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
您会得到抽到事件处理程序的文件列表:
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>
类型。
不隶属于 StackOverflow