/// <summary>Create mapping propviders from mapping attributes.</summary>
        public override IEnumerable <IEntityMappingProvider> GetMappingProviders()
        {
            var type        = typeof(IRdfListNode <object>);
            var restMapping = new PropertyMappingProvider(Rdf.rest, type.GetProperty("Rest"), null);

            restMapping.ConverterType = typeof(AsEntityConverter <IRdfListNode <object> >);
            var firstMapping = new PropertyMappingProvider(Rdf.first, type.GetProperty("First"), null);

            firstMapping.ConverterType = typeof(FallbackNodeConverter);
            yield return(new EntityMappingProvider(typeof(IRdfListNode <object>), new IClassMappingProvider[0], new[] { restMapping, firstMapping }));
        }
        private static PropertyMappingProvider CreatePropertyMapping(PropertyMapBase propertyMap, ILogger log)
        {
            PropertyMappingProvider propertyMappingProvider;

            if (propertyMap.TermUri != null)
            {
                propertyMappingProvider = new PropertyMappingProvider(propertyMap.TermUri, propertyMap.PropertyInfo, log);
            }
            else
            {
                propertyMappingProvider = new PropertyMappingProvider(propertyMap.NamespacePrefix, propertyMap.TermName, propertyMap.PropertyInfo, log);
            }

            if (propertyMap.ConverterType != null)
            {
                propertyMappingProvider.ConverterType = propertyMap.ConverterType;
            }

            return(propertyMappingProvider);
        }
예제 #3
0
        private static PropertyMappingProvider CreatePropertyMapping(PropertyAttribute propertyAttribute, PropertyInfo property, ILogger log)
        {
            PropertyMappingProvider propertyMappingProvider;

            if (propertyAttribute.Uri != null)
            {
                propertyMappingProvider = new PropertyMappingProvider(propertyAttribute.Uri, property, log);
            }
            else
            {
                propertyMappingProvider = new PropertyMappingProvider(propertyAttribute.Prefix, propertyAttribute.Term, property, log);
            }

            if (propertyAttribute.ConverterType != null)
            {
                propertyMappingProvider.ConverterType = propertyAttribute.ConverterType;
            }

            return(propertyMappingProvider);
        }