本文整理汇总了C#中Lookup.AddNewItemsOfItemType方法的典型用法代码示例。如果您正苦于以下问题:C# Lookup.AddNewItemsOfItemType方法的具体用法?C# Lookup.AddNewItemsOfItemType怎么用?C# Lookup.AddNewItemsOfItemType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lookup
的用法示例。
在下文中一共展示了Lookup.AddNewItemsOfItemType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProjectItemInstanceFactory
/// <summary>
/// Uses the given task output specification to (statically) infer the task's outputs.
/// </summary>
/// <param name="lookup">The lookup</param>
/// <param name="taskOutputSpecification">The task output specification</param>
/// <param name="taskParameterName">The task parameter name</param>
/// <param name="itemName">can be null</param>
/// <param name="propertyName">can be null</param>
/// <param name="bucket">The bucket for the batch.</param>
private void InferTaskOutputs
(
Lookup lookup,
ProjectTaskInstanceChild taskOutputSpecification,
string taskParameterName,
string itemName,
string propertyName,
ItemBucket bucket
)
{
string taskParameterAttribute = _taskNode.GetParameter(taskParameterName);
if (null != taskParameterAttribute)
{
ProjectTaskOutputItemInstance taskItemInstance = taskOutputSpecification as ProjectTaskOutputItemInstance;
if (taskItemInstance != null)
{
// This is an output item.
// Expand only with properties first, so that expressions like Include="@(foo)" will transfer the metadata of the "foo" items as well, not just their item specs.
IList<string> outputItemSpecs = bucket.Expander.ExpandIntoStringListLeaveEscaped(taskParameterAttribute, ExpanderOptions.ExpandPropertiesAndMetadata, taskItemInstance.TaskParameterLocation);
ProjectItemInstanceFactory itemFactory = new ProjectItemInstanceFactory(_buildRequestEntry.RequestConfiguration.Project, itemName);
foreach (string outputItemSpec in outputItemSpecs)
{
ICollection<ProjectItemInstance> items = bucket.Expander.ExpandIntoItemsLeaveEscaped(outputItemSpec, itemFactory, ExpanderOptions.ExpandItems, taskItemInstance.TaskParameterLocation);
lookup.AddNewItemsOfItemType(itemName, items);
}
}
else
{
// This is an output property.
ProjectTaskOutputPropertyInstance taskPropertyInstance = (ProjectTaskOutputPropertyInstance)taskOutputSpecification;
string taskParameterValue = bucket.Expander.ExpandIntoStringAndUnescape(taskParameterAttribute, ExpanderOptions.ExpandAll, taskPropertyInstance.TaskParameterLocation);
if (!String.IsNullOrEmpty(taskParameterValue))
{
lookup.SetProperty(ProjectPropertyInstance.Create(propertyName, taskParameterValue, taskPropertyInstance.TaskParameterLocation, _buildRequestEntry.RequestConfiguration.Project.IsImmutable));
}
}
}
}