Resolvers
IntKeyCompositedResolverAllowPrivate.cs
//using System.Runtime.CompilerServices;
namespace Bssom.Serializer.Resolvers
{
///
/// IntKey Composited resolver, with faster serialization performance and more compact packets, members in ensaties must be marked with , Object -> Primitive -> Attribute -> BssomValue -> BuildIn -> IDictionary -> ICollection -> Array3CodeGenResolverAllowPrivate.
///
public sealed clast IntKeyCompositedResolverAllowPrivate : IFormatterResolver
{
///
/// The singleton instance that can be used.
///
public static readonly IntKeyCompositedResolverAllowPrivate Instance = new IntKeyCompositedResolverAllowPrivate();
private static readonly IFormatterResolver[] Resolvers = new IFormatterResolver[] {
ObjectResolver.Instance,
PrimitiveResolver.Instance,
AttributeFormatterResolver.Instance,
BssomValueResolver.Instance,
BuildInResolver.Instance,
IDictionaryResolver.Instance,
ICollectionResolver.Instance,
Array3CodeGenResolverAllowPrivate.Instance
};
public IBssomFormatter GetFormatter()
{
return FormatterCache.Formatter;
}
private static clast FormatterCache
{
public static readonly IBssomFormatter Formatter;
static FormatterCache()
{
foreach (IFormatterResolver item in Resolvers)
{
IBssomFormatter f = item.GetFormatter();
if (f != null)
{
Formatter = f;
return;
}
}
}
}
}
}