IBindableBuilder <TNextHolder, TItemValue, IList <TItemValue> > IListBuilder <TItemValue> .Holding <TNextHolder>( HolderFactory <TNextHolder> holderFactory, BindingFunction <TNextHolder, TItemValue> bind) { Node.HolderFactory = v => holderFactory(v); Node.Binder = (h, v) => bind((TNextHolder)h, (TItemValue)v); return(new NodeBuilder <TNextHolder, TItemValue, IList <TItemValue> >(Node)); }
public INetworkPacketFactory <T> GetFactory <T>() where T : INetworkPacket { INetworkPacketFactory ret; if (!factoriesMap.TryGetValue(typeof(T), out ret)) { ret = getGeneratedFactory <T>(); if (ret != null) { factoriesMap.Add(typeof(T), ret); return(ret as INetworkPacketFactory <T>); } HolderFactory <T> holder = new HolderFactory <T>(this); factoriesMap.Add(typeof(T), holder); ret = holder; } return(ret as INetworkPacketFactory <T>); }
ISingleViewBuilder <TNextHolder> ISingleViewBuilder.Holding <TNextHolder>( HolderFactory <TNextHolder> holderFactory) { Node.HolderFactory = v => holderFactory(v); return(new NodeBuilder <TNextHolder, TItemValue, TUpdateValue>(Node)); }