public static HessianSerializationScheme CreateFromType(Type type, IObjectSerializerFactory factory) { var catalog = new Dictionary <Type, ISerializationElement>(); var element = CreateSerializationElement(type, catalog, factory); return(new HessianSerializationScheme(type, element)); }
public PageEditController(IContentLoader contentLoader, IExternalReviewLinksRepository externalReviewLinksRepository, IApprovalReviewsRepository approvalReviewsRepository, ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory) { _contentLoader = contentLoader; _externalReviewLinksRepository = externalReviewLinksRepository; _approvalReviewsRepository = approvalReviewsRepository; _externalReviewOptions = externalReviewOptions; _serializerFactory = serializerFactory; }
public ExtendedProjectStore(ProjectRepository projectRepository, ViewModelConverter viewModelConverter, IProjectEnhancementsStore projectEnhancementsStore, IObjectSerializerFactory objectSerializerFactory, UIRoleProvider roleProvider, ProjectOptions projectOptions) { _projectRepository = projectRepository; _viewModelConverter = viewModelConverter; _projectEnhancementsStore = projectEnhancementsStore; _roleProvider = roleProvider; _projectOptions = projectOptions; _objectSerializer = objectSerializerFactory.GetSerializer(KnownContentTypes.Json); }
public PageEditController(IContentLoader contentLoader, IExternalReviewLinksRepository externalReviewLinksRepository, IApprovalReviewsRepository approvalReviewsRepository, ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory, UrlResolver urlResolver, PropertyResolver propertyResolver) { _contentLoader = contentLoader; _externalReviewLinksRepository = externalReviewLinksRepository; _approvalReviewsRepository = approvalReviewsRepository; _externalReviewOptions = externalReviewOptions; _serializerFactory = serializerFactory; _urlResolver = urlResolver; _propertyResolver = propertyResolver; }
public PageEditController(IContentLoader contentLoader, IExternalReviewLinksRepository externalReviewLinksRepository, IApprovalReviewsRepository approvalReviewsRepository, ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory, StartPageUrlResolver startPageUrlResolver, PropertyResolver propertyResolver) { _contentLoader = contentLoader; _externalReviewLinksRepository = externalReviewLinksRepository; _approvalReviewsRepository = approvalReviewsRepository; _externalReviewOptions = externalReviewOptions; _serializerFactory = serializerFactory; _startPageUrlResolver = startPageUrlResolver; _propertyResolver = propertyResolver; approvalReviewsRepository.OnBeforeUpdate += ApprovalReviewsRepository_OnBeforeUpdate; }
public ReviewLocationParser(IObjectSerializerFactory objectSerializerFactory) { _objectSerializer = objectSerializerFactory.GetSerializer(KnownContentTypes.Json); }
public ReviewContentNotificationFormatter(IObjectSerializerFactory objectSerializerFactory) { _objectSerializer = objectSerializerFactory.GetSerializer(KnownContentTypes.Json); }
private static ISerializationElement BuildClassSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { if (catalog.TryGetValue(type, out var existing)) { return(existing); } var contract = type.GetCustomAttribute <DataContractAttribute>(); if (null == contract) { throw new HessianSerializerException(); } var properties = new List <PropertyElement>(); var element = new ObjectElement(type, properties); catalog.Add(type, element); foreach (var property in type.GetDeclaredProperties()) { var attribute = property.GetCustomAttribute <DataMemberAttribute>(); if (null == attribute) { continue; } if (!property.CanRead || !property.CanWrite) { continue; } properties.Add(new PropertyElement( property, CreateSerializationElement(property.PropertyType, catalog, factory) )); } properties.Sort(new ObjectPropertyComparer()); return(element); }
private static ISerializationElement CreateSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { if (type.IsSimpleType()) { var serializer = factory.GetSerializer(type); return(new ValueElement(type, serializer)); } if (type.IsTypedArray()) { return(BuildArraySerializationElement(type, catalog, factory)); } if (type.IsTypedList()) { return(BuildListSerializationElement(type, catalog, factory)); } if (type.IsTypedCollection()) { return(BuildCollectionSerializationElement(type, catalog, factory)); } if (type.IsTypedEnumerable()) { return(BuildEnumerableSerializationElement(type, catalog, factory)); } return(BuildClassSerializationElement(type, catalog, factory)); }
private static ISerializationElement BuildEnumerableSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { var elementType = type.GetGenericTypeArgument(); return(new VariableLengthTypedListElement( typeof(IEnumerable <>).MakeGenericType(elementType), CreateSerializationElement(elementType, catalog, factory) )); }
private static ISerializationElement BuildArraySerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { if (1 != type.GetArrayRank()) { throw new HessianSerializerException(); } var elementType = type.GetElementType(); if (typeof(object) == elementType) { // untyped } return(new FixedLengthTypedListElement( elementType.MakeArrayType(1), CreateSerializationElement(elementType, catalog, factory) )); }
public DdsApprovalReviewsRepository(DynamicDataStoreFactory dataStoreFactory, IObjectSerializerFactory serializerFactory) { _dataStoreFactory = dataStoreFactory; _serializerFactory = serializerFactory; }
public static HessianSerializationScheme CreateFromMethod(MethodInfo methodInfo, IObjectSerializerFactory factory) { var catalog = new Dictionary <Type, ISerializationElement>(); var element = new MethodCallElement(methodInfo); var methodArguments = methodInfo.GetParameters(); foreach (var argument in methodArguments) { var argumentElement = CreateSerializationElement(argument.ParameterType, catalog, factory); element.Arguments.Add(argumentElement); } return(new HessianSerializationScheme(null, element)); }
private static ISerializationElement BuildCollectionSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { var elementTypes = type.GetGenericArguments(); return(new FixedLengthTypedListElement( typeof(ICollection <>).MakeGenericType(elementTypes[0]), CreateSerializationElement(elementTypes[0], catalog, factory) )); }
private static ISerializationElement BuildArraySerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory) { if (1 != type.GetArrayRank()) { throw new HessianSerializerException(); } if (type.HasElementType) { var elementType = type.GetElementType(); if (typeof(object) != elementType) { return(new FixedLengthTypedListElement( elementType.MakeArrayType(1), CreateSerializationElement(elementType, catalog, factory) )); } } //var itemType = type.GetElementType(); /*return new FixedLengthGenericArrayElement( * elementType.MakeArrayType(1), * CreateSerializationElement(elementType, catalog, factory) * );*/ throw new NotSupportedException(); }