protected override void Build(ISharedScope scope) { scope.Type<ITypeA>().Spec(t => { t.Apply(Traits.TypeA); t.Property(o => o.PropertyA).Apply(Traits.PropertyA); t.Property(o => o.PropertyB).Apply(Traits.PropertyB); }); scope.Type<ITypeB>().Apply(Traits.TypeB); }
protected override void Build(ISharedScope scope) { scope.Types.Matching(t => t.Name.EndsWith("A")).Spec(t => { t.Apply(Traits.TypeA.Type); t.Properties.Matching(p => p.Name.EndsWith("A")).Apply(Traits.TypeA.PropertyA); t.Properties.Matching(p => p.Name.EndsWith("B")).Apply(Traits.TypeA.PropertyB); }); scope.Types.Matching(t => t.Name.EndsWith("B")).Spec(t => { t.Apply(Traits.TypeB.Type); t.Properties.Matching(p => p.Name.EndsWith("A")).Apply(Traits.TypeB.PropertyA); t.Properties.Matching(p => p.Name.EndsWith("B")).Apply(Traits.TypeB.PropertyB); }); scope.Properties.Matching(p => p.Name.EndsWith("A")).Apply(Traits.Global.PropertyA); scope.Properties.Matching(p => p.Name.EndsWith("B")).Apply(Traits.Global.PropertyB); }
protected abstract void Build(ISharedScope scope);
protected override void Build(ISharedScope scope) { scope.Types .Apply(Traits.Types ); scope.Properties.Apply(Traits.Properties); }