internal static void RegisterSerializer(Func <Type, bool> fnApplies, ICommoditySerializer serializer, uint priority = 1) { Serializers.Add(priority, new SerializerInfo() { Applies = fnApplies, Serializer = serializer }); }
private static ICommoditySerializer EnsureSerializer(Type nominalType) { ICommoditySerializer o = Resolve(nominalType); if (o == null) { throw new NotImplementedException(String.Format("No CommoditySerializer found for object of type {0}", nominalType.FullName)); } return(o); }
public TradingEngine(ILogger logger, ConsoleCommand command, ICommoditySource commoditySource, ICommoditySerializer commoditySerializer, CostCalcFactory costCalcFactory) { _logger = logger; _command = command; _commoditySource = commoditySource; _commoditySerializer = commoditySerializer; _costCalcFactory = costCalcFactory; }
internal static void Serialize(ICommodityWriter writer, Type nominalType, object value) { ICommoditySerializer o = EnsureSerializer(nominalType); o.Serialize(writer, nominalType, value); }
internal static void RegisterSerializer(Type serializerForType, ICommoditySerializer serializer, uint priority = 1) { Func <Type, bool> fnApplies = (t) => t == serializerForType; RegisterSerializer(fnApplies, serializer, priority); }
internal static object Deserialize(ICommodityReader reader, Type nominalType) { ICommoditySerializer o = EnsureSerializer(nominalType); return(o.Deserialize(reader, nominalType)); }