コード例 #1
0
ファイル: FieldVisitor.cs プロジェクト: RichardPavy/Triangle
 internal StructFieldVisitor(
     VisitorFactory <TData> visitorFactory,
     PropertyInfo property,
     ProcessField <TData, TObj, V> process,
     MustVisitStatus mustVisit) : base(visitorFactory, property, process, mustVisit)
 {
 }
コード例 #2
0
ファイル: ClassVisitor.cs プロジェクト: RichardPavy/Triangle
 internal ClassVisitor(
     VisitorFactory <TData> visitorFactory,
     ProcessObject <TData, TObj> process,
     MustVisitStatus mustVisit) : base(mustVisit)
 {
     allFieldVisitors =
         new Lazy <ImmutableArray <FieldVisitor <TData, TObj> > >(() =>
                                                                  (from property in typeof(TObj).GetProperties(
                                                                       BindingFlags.FlattenHierarchy
                                                                       | BindingFlags.Instance
                                                                       | BindingFlags.Public
                                                                       | BindingFlags.NonPublic)
                                                                   where property.CanRead
                                                                   let method = property.GetMethod
                                                                                where !method.MethodImplementationFlags.HasFlag(MethodImplAttributes.InternalCall)
                                                                                select visitorFactory.CreateFieldVisitor <TObj>(property))
                                                                  .ToImmutableArray());
     enabledFieldVisitors =
         new Lazy <ImmutableArray <FieldVisitor <TData, TObj> > >(() =>
                                                                  allFieldVisitors.Value
                                                                  .Where(fieldVisitor => fieldVisitor.ShouldVisit())
                                                                  .ToImmutableArray());
     this.process = process;
 }