コード例 #1
0
        internal static IEnumerable <ProxyModelMetadata> ToFlat(this ProxyModelMetadata modelMetadata)
        {
            List <ProxyModelMetadata> list = new List <ProxyModelMetadata>();
            var stack      = new Stack <IEnumerator <ProxyModelMetadata> >();
            var enumerator = modelMetadata.Properties.GetEnumerator();

            while (true)
            {
                if (enumerator.MoveNext())
                {
                    ProxyModelMetadata element = enumerator.Current;
                    yield return(element);

                    stack.Push(enumerator);
                    enumerator = element.Properties.GetEnumerator();
                }
                else if (stack.Count > 0)
                {
                    enumerator.Dispose();
                    enumerator = stack.Pop();
                }
                else
                {
                    yield break;
                }
            }
        }
コード例 #2
0
 public ModelDictionaryContext(ProxyModelMetadata modelMetadata, object value)
 {
     Value         = value;
     ModelMetadata = modelMetadata;
 }