예제 #1
0
        protected EntityConverter(IServiceProvider services, bool isCustomType)
        {
            Contract = Typeof <TEntity> .Raw;

            _customTypeName = isCustomType
                ? SourceDescriptions.BuildTypeName(Typeof <TEntity> .Raw)
                : null;

            _properties = SerializationUtils.ActivatePropertyConverters <TEntity>(services);

            _idConverter         = (IdConverter)_properties[nameof(IEntity.Id)];
            _componentsConverter = (ComponentsConverter)_properties[nameof(IEntity.Components)];
        }
예제 #2
0
        public ComponentsConverterShould()
        {
            var provider = new DependencyCollection()
                           .AddECS()
                           .BuildProvider();

            var components = new IComponent[] { Fixture.Create <TestComponent1>(), Fixture.Create <TestComponent2>() };

            _asset = new TestAsset(1, components)
            {
                Reference = CreateAsset(2)
            };

            var converters = provider.GetRequired <IConvertersCollection>();

            _converter = provider.Activate <ComponentsConverter>();

            _assetData = (JsonObject)converters.Write(_asset);

            _component1Name = SourceDescriptions.BuildTypeName(typeof(TestComponent1));
            _component2Name = SourceDescriptions.BuildTypeName(typeof(TestComponent2));
        }