У меня есть System.Activities.Statements.InvokeMethod
активность.Я пытаюсь активировать его с помощью
TargetType: (null)
TargetObject: licxFiles //an ICollection<string>
MethodName: StoreIfHasValue
StoreIfHasValue
:
public static void StoreIfHasValue(this ICollection<string> collection, string value)
{
if (value.IsNullOrEmpty( )==false)
collection.Add(value);
}
Единственный параметр, который я передаю от дизайнера рабочих процессов:
CheckForLicx
:
public static string CheckForLicx(string projPath, XDocument proj)
{
var ns=proj.Root.Name.Namespace;
var q = from refs in proj.Root.Elements(ns+"ItemGroup").Descendants(ns+"EmbeddedResource")
where refs.Attribute("Include").Value.EndsWith(".licx", StringComparison.CurrentCultureIgnoreCase)
select refs.Attribute("Include").Value;
var licx=q.FirstOrDefault( ); //assume there is only one .licx file reference in the project
if (licx.IsNullOrEmpty( ))
return null;
return System.IO.Path.Combine(projPath, licx);
}
Проблема в том, что я использую вызов метода в качестве параметра?Или почему это дает ошибку
'ICollection`1' does not have a public instance method named 'StoreIfHasValue' matching the parameter types, generic type arguments, and generic type constraints supplied to InvokeMethod 'Check for and store'.