我需要将一个Collection<T>
类型传递SharpSvn.SvnListEventArgs
给该 svnClient.GetList
方法。T
需要在运行时解析类型,因为这在 MSBuild 内联任务中使用。方法调用将GetList
运行时错误抛出为
' ' 的最佳重载方法匹配
SharpSvn.SvnClient.GetList(SharpSvn.SvnTarget, out System.Collections.ObjectModel.Collection<SharpSvn.SvnListEventArgs>)
有一些无效参数
下面是我尝试过的代码片段。我该如何解决这个问题?
System.Type t = svntask.GetType("SharpSvn.SvnListEventArgs");
//System.Collections.ObjectModel.Collection<System.EventArgs> branchfolderlist = new System.Collections.ObjectModel.Collection<System.EventArgs>();
System.Type genericType = typeof(System.Collections.ObjectModel.Collection<>);
System.Type constructedType = genericType.MakeGenericType(t);
var branchfolderlist = System.Activator.CreateInstance(constructedType);
//branchfolderlist = svntask.GetType("SharpSvn.SvnListEventArgs")branchfolderlist;
//System.Collections.ObjectModel.Collection<System.Object> branchfolderlist;
dynamic svnTarget = svntask.GetType("SharpSvn.SvnTarget").GetMethod("FromUri").Invoke(null, new object[] { new System.Uri(destinationBranch) });
//svntask.GetType("SharpSvn.SvnClient").GetMethod("GetList").Invoke(null, System.Reflection.BindingFlags.InvokeMethod, null, new object[] { svnTarget, branchfolderlist }, null);
svnClient.GetList(svnTarget, out branchfolderlist);
return true;
提前致谢 !!!