我需要将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;
提前致谢!!!