/// <summary> /// Look up a type in the target data space based upon the fullName /// </summary> /// <param name="fullName"> fullName </param> /// <param name="ignoreCase"> true for case-insensitive lookup </param> /// <param name="typeUsage"> The type usage object to return </param> /// <returns> True if the retrieval succeeded </returns> internal override bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage typeUsage) { Check.NotEmpty(fullName, "fullName"); typeUsage = null; EdmType edmType = null; if (MetadataWorkspace.TryGetItem(fullName, ignoreCase, TargetDataspace, out edmType)) { if (Helper.IsPrimitiveType(edmType)) { typeUsage = MetadataWorkspace.GetCanonicalModelTypeUsage(((PrimitiveType)edmType).PrimitiveTypeKind); } else { typeUsage = TypeUsage.Create(edmType); } } return(typeUsage != null); }
private static bool TryGetPrimitiveType(PrimitiveTypeKind modelType, out TypeUsage type) { type = (TypeUsage)null; type = modelType != PrimitiveTypeKind.String ? MetadataWorkspace.GetCanonicalModelTypeUsage(modelType) : TypeUsage.CreateStringTypeUsage(MetadataWorkspace.GetModelPrimitiveType(modelType), false, false); return(null != type); }
internal override bool TryGetTypeByName( string fullName, bool ignoreCase, out TypeUsage typeUsage) { Check.NotEmpty(fullName, nameof(fullName)); typeUsage = (TypeUsage)null; EdmType edmType = (EdmType)null; if (this.MetadataWorkspace.TryGetItem <EdmType>(fullName, ignoreCase, this.TargetDataspace, out edmType)) { typeUsage = !Helper.IsPrimitiveType(edmType) ? TypeUsage.Create(edmType) : MetadataWorkspace.GetCanonicalModelTypeUsage(((PrimitiveType)edmType).PrimitiveTypeKind); } return(typeUsage != null); }