コード例 #1
0
        public static IEnumerable <IMetadata> GetSchemaMetadata(this ISchema schema)
        {
            var metadataProperties = schema.GetMetadataContainer(autoCreate: false).Properties;

            foreach (var metadataProperty in metadataProperties)
            {
                if (metadataProperty.ValueUntyped is IMetadata metadata)
                {
                    if (metadata is IHasSchema hasSchema)
                    {
                        var referencedMetadataObjects = GetSchemaMetadata(hasSchema.Schema);
                        foreach (IMetadata referencedMetadataObject in referencedMetadataObjects)
                        {
                            yield return(referencedMetadataObject);
                        }
                    }
                    else
                    {
                        yield return(metadata);
                    }
                }
            }
        }