Exemple #1
0
        private T GenerateInstance <T>(ClassMapping classMapping)
        {
            var typeAccessor = classMapping.TypeAccessor;
            var instance     = classMapping.Factory != null
                ? classMapping.Factory(typeAccessor.Type)
                : typeAccessor.Create();

            foreach (var memberMapping in classMapping.Members)
            {
                var dataSource = memberMapping.DataSource;
                if (memberMapping.Ignored || dataSource == null)
                {
                    continue;
                }

                var memberAccessor = memberMapping.MemberAccessor;
                var context        = new GenerateContext
                {
                    Generator  = this,
                    ClassType  = typeAccessor.Type,
                    MemberType = memberAccessor.MemberType,
                    MemberName = memberAccessor.Name,
                    Instance   = instance
                };

                var value = dataSource.NextValue(context);
                SetValueWithCoercion(memberAccessor, instance, value);
            }

            return((T)instance);
        }
        private T CreateInstance <T>(ClassMapping classMapping)
        {
            var typeAccessor = classMapping.TypeAccessor;

            var instance = classMapping.Factory != null
                ? classMapping.Factory(typeAccessor.Type)
                : typeAccessor.Create();

            return((T)instance);
        }