/// <summary> /// Create instances of SampleClassificationObjectType, adding them to the private objects collection. /// </summary> /// <param name="entry"></param> private void ProcessResourceEntry(SampleResourceEntry entry) { // Create Property provider by matching property adapters with data sources // PropertyProvider is called by ResourceStaticAnalysis when code attempts to retrieve a property that has not yet been created var pp = new PropertyProvider(); // Add a pair: property adapter and an object that serves as source foreach (var adapter in resourceFilePropertyAdapters) { pp.AddPropertyAdapterDataSourcePair(adapter, entry); } // Initialize an instance of SampleClassificationObjectType using the PropertyProvider built above var obj = new SampleClassificationObjectType(pp); foreach (var adapter in selfPropertyAdapters) { // Now, add one more poperty adapter that uses the SampleClassificationObjectType object itself as data source // this one builds properties from existing properties. pp.AddPropertyAdapterDataSourcePair(adapter, obj); } // This reduces amount of memory used by object by compacting internal representation. pp.Compact(); // Add to the list of all objects being constructed by this adapter. objects.Add(obj); }