-
Notifications
You must be signed in to change notification settings - Fork 1
/
HyperionSerializer.cs
47 lines (38 loc) · 1.41 KB
/
HyperionSerializer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System.Collections.Generic;
using System.IO;
using Hyperion;
using Nancy.Responses.Negotiation;
using Nancy.Serialization.Hyperion.Settings;
namespace Nancy.Serialization.Hyperion
{
public class HyperionSerializer : ISerializer
{
private readonly Serializer _serializer;
public HyperionSerializer()
{
HyperionSerializerSettings hyperionSerializerSettings = HyperionSerializerSettings.Default;
_serializer = new Serializer(new SerializerOptions(preserveObjectReferences: hyperionSerializerSettings.PreserveObjectReferences,
versionTolerance: hyperionSerializerSettings.VersionTolerance,
ignoreISerializable: hyperionSerializerSettings.IgnoreISerializable));
}
public HyperionSerializer(Serializer serializer)
{
_serializer = serializer;
}
public bool CanSerialize(MediaRange mediaRange)
{
return HyperionHelper.IsHyperion(mediaRange);
}
public void Serialize<TModel>(MediaRange mediaRange, TModel model, Stream outputStream)
{
_serializer.Serialize(model, outputStream);
}
public IEnumerable<string> Extensions
{
get
{
yield return "hyperion";
}
}
}
}