/// <summary> /// 初始化 契约缓存 /// </summary> public void InitContractCache() { var cType = typeof(TMsmqHandlerContract); ParameterInfo tParameterInfo = null; var methods = cType.GetMethods(BindingFlags.Public | BindingFlags.Instance) .Where(x => x.MemberType == MemberTypes.Method && //实例方法 x.ReturnType == typeof(void) && //方法无返回值 x.GetParameters().Length == 1 && //一个参数 (tParameterInfo = x.GetParameters()[0]) .ParameterType.IsSubclassOf(typeof(MessageBase))) //参数继承自 MessageBase .ToDictionary(x => x.Name, y => y); m_MsmqContract_Cache.AddRange(methods); MsmqHandlerFactory = MsmqBindUtils.GetNewFactory <TMsmqHandlerImpl>(); }
private void CleanHistory() { var remained = new ConcurrentDictionary <string, Arbitrage>(); // Get distinct paths and for each path remain only %_historyMaxSize% of the best var uniqueAssetPairs = _arbitrageHistory.Values.Select(x => x.AssetPair).Distinct().ToList(); foreach (var assetPair in uniqueAssetPairs) { _arbitrageHistory.Where(x => x.Value.AssetPair.Equals(assetPair)) .OrderByDescending(x => x.Value.PnL) .Take(Settings().HistoryMaxSize) .ForEach(x => remained[x.Key] = x.Value); } _arbitrageHistory.Clear(); _arbitrageHistory.AddRange(remained); }
public DataObjectConverter(ILogger logger, IEnumerable <KeyValuePair <string, Type> > knownDataTypes = null) { _logger = logger; if (knownDataTypes != null) { _dataTypeRegistry.AddRange(knownDataTypes); } if (_propertyAccessors.Count != 0) { return; } foreach (var prop in _type.GetProperties(BindingFlags.Instance | BindingFlags.FlattenHierarchy | BindingFlags.Public).Where(p => p.CanWrite)) { _propertyAccessors.TryAdd(prop.Name, LateBinder.GetPropertyAccessor(prop)); } }
public DeltaModel(IEnumerable <ShiftModel> created, IEnumerable <ShiftModel> updated, IEnumerable <ShiftModel> deleted) { _created.AddRange(created, k => k as ShiftModel); _updated.AddRange(updated, k => k as ShiftModel); _deleted.AddRange(deleted, k => k as ShiftModel); }