コード例 #1
0
        /// <summary>Determines a matching target kind from the specified type.</summary>
        /// <param name="type">ResourceType of element to get kind for.</param>
        /// <returns>An appropriate <see cref="RequestTargetKind"/> for the specified <paramref name="type"/>.</returns>
        internal static RequestTargetKind GetTargetKindFromType(this IEdmType type)
        {
            Debug.Assert(type != null, "type != null");

            switch (type.TypeKind)
            {
            case EdmTypeKind.Complex:
            case EdmTypeKind.Entity:
                return(RequestTargetKind.Resource);

            case EdmTypeKind.Collection:
                if (type.IsStructuredCollectionType())
                {
                    return(RequestTargetKind.Resource);
                }

                return(RequestTargetKind.Collection);

            case EdmTypeKind.Enum:
                return(RequestTargetKind.Enum);

            case EdmTypeKind.TypeDefinition:
                return(RequestTargetKind.Primitive);

            default:
                Debug.Assert(type.TypeKind == EdmTypeKind.Primitive, "typeKind == ResourceTypeKind.Primitive");
                return(RequestTargetKind.Primitive);
            }
        }