// Token: 0x060004EF RID: 1263 RVA: 0x00019FB8 File Offset: 0x000181B8 public Dictionary <string, object> ToDictionary() { Dictionary <string, object> dictionary = new Dictionary <string, object>(); foreach (PropertyDefinition propertyDefinition in this.ObjectSchema.AllProperties) { object obj; if (string.Compare(propertyDefinition.Name, "ObjectState", true) != 0 && string.Compare(propertyDefinition.Name, "ExchangeVersion") != 0 && base.TryGetValueWithoutDefault(propertyDefinition, out obj) && obj != null) { if (typeof(QueryableObject).IsAssignableFrom(propertyDefinition.Type)) { object arg = obj; SimpleProviderPropertyDefinition simpleProviderPropertyDefinition = propertyDefinition as SimpleProviderPropertyDefinition; if (simpleProviderPropertyDefinition != null) { if (simpleProviderPropertyDefinition.IsMultivalued) { List <Dictionary <string, object> > list = new List <Dictionary <string, object> >(); if (QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site1 == null) { QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site1 = CallSite <Func <CallSite, object, IEnumerable> > .Create(Binder.Convert(CSharpBinderFlags.None, typeof(IEnumerable), typeof(QueryableObject))); } using (IEnumerator enumerator2 = QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site1.Target(QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site1, arg).GetEnumerator()) { while (enumerator2.MoveNext()) { if (QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site2 == null) { QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site2 = CallSite <Func <CallSite, object, QueryableObject> > .Create(Binder.Convert(CSharpBinderFlags.ConvertExplicit, typeof(QueryableObject), typeof(QueryableObject))); } QueryableObject queryableObject = QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site2.Target(QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site2, enumerator2.Current); list.Add(queryableObject.ToDictionary()); } } dictionary.Add(propertyDefinition.Name, list); } else { if (QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site3 == null) { QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site3 = CallSite <Action <CallSite, Dictionary <string, object>, string, object> > .Create(Binder.InvokeMember(CSharpBinderFlags.ResultDiscarded, "Add", null, typeof(QueryableObject), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })); } Action <CallSite, Dictionary <string, object>, string, object> target = QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site3.Target; CallSite <> p__Site = QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site3; Dictionary <string, object> arg2 = dictionary; string name = propertyDefinition.Name; if (QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site4 == null) { QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site4 = CallSite <Func <CallSite, object, object> > .Create(Binder.InvokeMember(CSharpBinderFlags.None, "ToDictionary", null, typeof(QueryableObject), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })); } target(< > p__Site, arg2, name, QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site4.Target(QueryableObject.< ToDictionary > o__SiteContainer0.< > p__Site4, arg)); } } } else { dictionary.Add(propertyDefinition.Name, obj); } } } return(dictionary); }