#c# #workflow-foundation #generic-type-argument
Вопрос:
У меня есть повторно размещенный конструктор рабочих процессов на C#, и у меня есть пользовательское действие с общим типом. Чтобы лучше понять это, я нашел AddToCollection<>
здесь активность. И скопировал его в свой код:
[ContentProperty("Collection")]
public sealed class AddToCollection<T> : CodeActivity
{
[RequiredArgument]
[DefaultValue(null)]
public InArgument<ICollection<T>> Collection
{
get;
set;
}
[RequiredArgument]
[DefaultValue(null)]
public InArgument<T> Item
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
Collection<RuntimeArgument> arguments = new Collection<RuntimeArgument>();
RuntimeArgument collectionArgument = new RuntimeArgument("Collection", typeof(ICollection<T>), ArgumentDirection.In, true);
metadata.Bind(this.Collection, collectionArgument);
arguments.Add(collectionArgument);
RuntimeArgument itemArgument = new RuntimeArgument("Item", typeof(T), ArgumentDirection.In, true);
metadata.Bind(this.Item, itemArgument);
arguments.Add(itemArgument);
metadata.SetArgumentsCollection(arguments);
}
protected override void Execute(CodeActivityContext context)
{
ICollection<T> collection = this.Collection.Get(context);
T item = this.Item.Get(context);
collection.Add(item);
}
}
Когда я вставляю в конструктор код Microsoft, он НЕ отображает всплывающее окно для универсального типа и отображает его InArgument
как показано ниже:
Но когда код, который я скопировал и вставил выше, он отображает всплывающее окно и спрашивает меня о типе, а не показывает InArgument
в разделе свойств, как показано ниже:
Я НЕ ХОЧУ, чтобы всплывающее окно было таким, как на 2-й фотографии, и использовал то же самое на 1-й фотографии в других моих пользовательских действиях. Как мне это сделать? Что я упускаю?