protected override void CacheMetadata(CodeActivityMetadata metadata)
        {
            metadata.AddRuntimeArgument(Result, nameof(Result), true);

            if (Path == null)
            {
                metadata.AddRuntimeArgument(Path, typeof(string), nameof(Path), true);
            }
            else if (Path.IsArgumentTypeAnyCompatible <string, IEnumerable <string> >())
            {
                metadata.AddRuntimeArgument(Path, Path.ArgumentType, nameof(Path), true);
            }
            else
            {
                metadata.AddValidationError(Resources.Validation_TypeErrorFormat("string or IEnumerable<string>", nameof(Path)));
            }

            if (SearchPattern == null)
            {
                metadata.AddRuntimeArgument(SearchPattern, typeof(string), nameof(SearchPattern), false);
            }
            else if (SearchPattern.IsArgumentTypeAnyCompatible <string, IEnumerable <string> >())
            {
                metadata.AddRuntimeArgument(SearchPattern, SearchPattern.ArgumentType, nameof(SearchPattern), false);
            }
            else
            {
                metadata.AddValidationError(Resources.Validation_TypeErrorFormat("string or IEnumerable<string>", nameof(SearchPattern)));
            }
        }
        protected override void CacheMetadata(CodeActivityMetadata metadata)
        {
            base.CacheMetadata(metadata);

            if (SearchPattern == null)
            {
                return;
            }

            if (SearchPattern.IsArgumentTypeAnyCompatible <string, IEnumerable <string> >())
            {
                metadata.AddRuntimeArgument(SearchPattern, SearchPattern.ArgumentType, nameof(SearchPattern), false);
                return;
            }

            metadata.AddValidationError(Resources.Validation_TypeErrorFormat("string or collection of strings", nameof(SearchPattern)));
        }