本文整理汇总了C#中Selection.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# Selection.GetType方法的具体用法?C# Selection.GetType怎么用?C# Selection.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Selection
的用法示例。
在下文中一共展示了Selection.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildSelections
private void BuildSelections(Selection selection, IEdmEntityTypeReference entityType, IEdmModel model)
{
Contract.Assert(entityType != null);
Contract.Assert(model != null);
HashSet<IEdmStructuralProperty> allStructuralProperties = new HashSet<IEdmStructuralProperty>(entityType.StructuralProperties());
HashSet<IEdmNavigationProperty> allNavigationProperties = new HashSet<IEdmNavigationProperty>(entityType.NavigationProperties());
HashSet<IEdmFunctionImport> allActions = new HashSet<IEdmFunctionImport>(model.GetAvailableProcedures(entityType.EntityDefinition()));
if (selection == null || selection == AllSelection.Instance)
{
SelectedStructuralProperties = allStructuralProperties;
SelectedNavigationProperties = allNavigationProperties;
SelectedActions = allActions;
}
else if (selection == ExpansionsOnly.Instance)
{
// nothing to select.
}
else
{
PartialSelection partialSelection = selection as PartialSelection;
if (partialSelection == null)
{
throw new ODataException(Error.Format(SRResources.SelectionTypeNotSupported, selection.GetType().Name));
}
HashSet<IEdmStructuralProperty> selectedStructuralProperties = new HashSet<IEdmStructuralProperty>();
HashSet<IEdmNavigationProperty> selectedNavigationProperties = new HashSet<IEdmNavigationProperty>();
HashSet<IEdmFunctionImport> selectedActions = new HashSet<IEdmFunctionImport>();
foreach (SelectionItem selectionItem in partialSelection.SelectedItems)
{
PathSelectionItem pathSelection = selectionItem as PathSelectionItem;
if (pathSelection != null)
{
ValidatePathIsSupported(pathSelection.SelectedPath);
Segment segment = pathSelection.SelectedPath.LastSegment;
NavigationPropertySegment navigationPropertySegment = segment as NavigationPropertySegment;
if (navigationPropertySegment != null)
{
if (allNavigationProperties.Contains(navigationPropertySegment.NavigationProperty))
{
selectedNavigationProperties.Add(navigationPropertySegment.NavigationProperty);
}
continue;
}
PropertySegment structuralPropertySegment = segment as PropertySegment;
if (structuralPropertySegment != null)
{
if (allStructuralProperties.Contains(structuralPropertySegment.Property))
{
selectedStructuralProperties.Add(structuralPropertySegment.Property);
}
continue;
}
throw new ODataException(Error.Format(SRResources.SelectionTypeNotSupported, segment.GetType().Name));
}
WildcardSelectionItem wildCardSelection = selectionItem as WildcardSelectionItem;
if (wildCardSelection != null)
{
selectedStructuralProperties = allStructuralProperties;
selectedNavigationProperties = allNavigationProperties;
continue;
}
ContainerQualifiedWildcardSelectionItem wildCardActionSelection = selectionItem as ContainerQualifiedWildcardSelectionItem;
if (wildCardActionSelection != null)
{
IEnumerable<IEdmFunctionImport> actionsInThisContainer = allActions.Where(a => a.Container == wildCardActionSelection.Container);
foreach (IEdmFunctionImport action in actionsInThisContainer)
{
selectedActions.Add(action);
}
continue;
}
throw new ODataException(Error.Format(SRResources.SelectionTypeNotSupported, selectionItem.GetType().Name));
}
SelectedStructuralProperties = selectedStructuralProperties;
SelectedNavigationProperties = selectedNavigationProperties;
SelectedActions = selectedActions;
}
}