Example #1
0
        /// <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);
        }