private static void RegisterType(Type type)
        {
            SerializableAliasAttribute serializableAlias =
                (SerializableAliasAttribute)type
                .GetCustomAttributes(typeof(SerializableAliasAttribute))
                .FirstOrDefault();

            if (serializableAlias != null)
            {
                FrameworkSerializerRegistry.Map(serializableAlias.Value, type);
            }
            else
            {
                FrameworkSerializerRegistry.Map(type.FullName, type);
            }
        }
예제 #2
0
        internal static void WriteTypeInformation <T>(this IBsonWriter writer, T value)
        {
            Type valueType = value.GetType();

            SerializableAliasAttribute serializableAlias =
                (SerializableAliasAttribute)valueType
                .GetCustomAttributes(typeof(SerializableAliasAttribute))
                .FirstOrDefault();

            if (serializableAlias != null)
            {
                writer.WriteName(Conventions.TypeAlias);
                writer.WriteString(serializableAlias.Value);
            }
            else
            {
                writer.WriteName(Conventions.Type);
                writer.WriteString(valueType.FullName);
            }
        }