コード例 #1
0
        private IEnumerable <MetadataObjectContext> GetMetadataContexts(
            IKey baseKey,
            IList <IFastMemberWithValues> dependendArguments,
            object[][] ctorValuesCollections,
            IReadOnlyList <int> sortedToUnsorted,
            ITestDataGenerator testDataGenerator)
        {
            var dependendArgumentMapping = new List <Tuple <int, IKey> >();

            for (var i = 0; i < dependendArguments.Count; i++)
            {
                var argument      = dependendArguments[i];
                var argumentKey   = baseKey.CreateKey(argument);
                var argumentIndex = sortedToUnsorted[i];

                dependendArgumentMapping.Add(new Tuple <int, IKey> (argumentIndex, argumentKey));
            }

            foreach (var valueCollection in ctorValuesCollections)
            {
                var context = new MetadataObjectContext(testDataGenerator);
                foreach (var dependendArgument in dependendArgumentMapping)
                {
                    context.Add(dependendArgument.Item2, valueCollection[dependendArgument.Item1]);
                }

                yield return(context);
            }
        }
コード例 #2
0
        private IEnumerable <MetadataObjectContext> GetMetadataContexts(
            IKey baseKey,
            IEnumerable <IFastMemberWithValues> dependendMembers,
            IList <object> instances)
        {
            var instanceToContext = new Dictionary <object, MetadataObjectContext>();

            foreach (var member in dependendMembers)
            {
                var memberKey = baseKey.CreateKey(member);
                foreach (var instance in instances)
                {
                    if (!instanceToContext.ContainsKey(instance))
                    {
                        instanceToContext[instance] = new MetadataObjectContext(this);
                    }

                    instanceToContext[instance].Add(memberKey, member.GetValue(instance));
                }
            }

            return(instanceToContext.Select(i => i.Value));
        }