public CodeTypeReference CreateCollectionType(CodeTypeReference entityType, ExtendedCodeDomTree code) { Debug.Assert(entityType != null, "Argument entity type could not be null."); // Do not create a ByteCollection as this is not compatiable with base64Binary! if (entityType.BaseType == typeof(byte).FullName) return entityType; CodeTypeReference ctr = new CodeTypeReference(typeof(List<>)); if (entityType.IsNullableType()) { ctr.TypeArguments.Add(entityType.CloseNullableType()); } else { ctr.TypeArguments.Add(entityType.BaseType); } return ctr; }
private static CodeTypeDeclaration GenerateCollectionType(CodeTypeReference entityType) { string entityTypeName = entityType.IsNullableType() ? "Nullable" + Type.GetType(entityType.TypeArguments[0].BaseType).Name : entityType.BaseType; string collectionTypeName = GetCollectionTypeName(entityTypeName); CodeTypeDeclaration collectionType = new CodeTypeDeclaration(collectionTypeName); CodeTypeReference baseType = new CodeTypeReference(typeof(Collection<>)); if (entityType.IsNullableType()) { baseType.TypeArguments.Add(entityType.CloseNullableType()); } else { baseType.TypeArguments.Add(entityType.BaseType); } collectionType.BaseTypes.Add(baseType); return collectionType; }