/// <summary> /// Returns the Parent of the item if it implements T. If it does implement T the method returns null. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ancestors"></param> /// <returns></returns> public virtual T Parent <T>(bool ancestors = true) where T : IItemWrapper { if (ancestors) { return(Ancestor <T>(Item.Parent)); } var wrapper = _spawnProvider.FromItem <T>(Item.Parent); if (wrapper is T) { return((T)wrapper); } return((T)((wrapper is T) ? wrapper : null)); }
protected virtual T SpawnFromItem <T>(Item item) where T : IItemWrapper { object wrapper = null; try { wrapper = SpawnProvider.FromItem <T>(item); } catch { } return((T)((wrapper is T) ? wrapper : null)); }
protected virtual T SpawnFromItem <T>(Item item) where T : IItemWrapper { object wrapper = null; try { wrapper = SpawnProvider.FromItem <T>(item); } catch { // ignored - we should probably _not_ ignore this? } return((T)((wrapper is T) ? wrapper : null)); }