/// <summary> /// Returns an <see cref="IObjectSpace"/> for the specified type. /// </summary> /// <param name="type">The type.</param> /// <returns></returns> public static IObjectSpace ObjectSpaceFor(this IObjectSpaceLink baseObject, Type type) { if (baseObject.ObjectSpace is NonPersistentObjectSpace nonPersistentObjectSpace) { return(nonPersistentObjectSpace.AdditionalObjectSpaces.FirstOrDefault(os => os.CanInstantiate(type))); } return(baseObject.ObjectSpace); }
/// <summary> /// Returns an <see cref="IObjectSpace" /> for the specified type. /// </summary> /// <param name="baseObject">The base object.</param> /// <param name="type">The type.</param> /// <returns>System.Nullable<IObjectSpace>.</returns> /// <exception cref="ArgumentNullException">baseObject</exception> public static IObjectSpace?ObjectSpaceFor(this IObjectSpaceLink baseObject, Type type) { _ = baseObject ?? throw new ArgumentNullException(nameof(baseObject)); if (baseObject.ObjectSpace is NonPersistentObjectSpace nonPersistentObjectSpace) { return(nonPersistentObjectSpace.AdditionalObjectSpaces.FirstOrDefault(os => os.CanInstantiate(type))); } return(baseObject.ObjectSpace); }
private void DeleteViewVariantAction_Execute(object sender, SimpleActionExecuteEventArgs e) { IObjectSpaceLink currentLayoutItem = SelectViewVariantAction.SelectedItem.Data as IObjectSpaceLink; if (TryLoadViewVariantFromXML(defaultUserSettings)) { IObjectSpace os = currentLayoutItem.ObjectSpace; os.Delete(currentLayoutItem); os.CommitChanges(); isDefaultViewSelected = true; UpdateActions(null); } }
/// <summary> /// Returns an <see cref="IObjectSpace"/> for the specified type. /// </summary> /// <typeparam name="T">The type.</typeparam> /// <returns></returns> public static IObjectSpace ObjectSpaceFor <T>(this IObjectSpaceLink baseObject) => baseObject.ObjectSpaceFor(typeof(T));