Exemple #1
0
        public RailStateDataSerializer(RailState instance)
        {
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            state = instance;
            foreach (PropertyInfo prop in state
                     .GetType()
                     .GetProperties(
                         BindingFlags.Instance |
                         BindingFlags.Public |
                         BindingFlags.NonPublic))
            {
                if (Attribute.IsDefined(prop, typeof(MutableAttribute)))
                {
                    mutable.Add(RailSynchronizedFactory.Create(state, prop));
                }
                else if (Attribute.IsDefined(prop, typeof(ImmutableAttribute)))
                {
                    immutable.Add(RailSynchronizedFactory.Create(state, prop));
                }
                else if (Attribute.IsDefined(prop, typeof(ControllerAttribute)))
                {
                    controller.Add(RailSynchronizedFactory.Create(state, prop));
                }
            }
        }
Exemple #2
0
 protected virtual void InitState(IRailStateConstruction creator, RailState initialState)
 {
     StateBase = initialState;
 }