// -------------------------------------------------- /// <summary> /// Merges this instance with the specified data context. /// </summary> /// <param name="dataContext">The data context to consider.</param> public void Merge(IBdoDataContext dataContext) { if (dataContext != null) { foreach (KeyValuePair <string, object> entry in dataContext.SingletonItems) { if (!SingletonItems.ContainsKey(entry.Key)) { SingletonItems.Add(entry.Key, entry.Value); } } foreach (KeyValuePair <string, object> entry in dataContext.ScopedItems) { if (!ScopedItems.ContainsKey(entry.Key)) { ScopedItems.Add(entry.Key, entry.Value); } } foreach (KeyValuePair <string, object> entry in dataContext.TransientItems) { if (!TransientItems.ContainsKey(entry.Key)) { TransientItems.Add(entry.Key, entry.Value); } } } }
/// <summary> /// Returns a specific transient item. /// </summary> /// <param name="name">Name of the dynamic item to return.</param> /// <param name="contextSectionName">Name of the context section to consider.</param> /// <returns>The dynamic item with specified name and type.</returns> public object GetTransientItem(string name, string contextSectionName = null) { string itemName = BdoDataContext.GetItemUniqueName(name, contextSectionName); return(TransientItems.ContainsKey(itemName) ? TransientItems[itemName] : null); }