diff options
| author | Erwin de Haan <EraYaN@users.noreply.github.com> | 2018-12-30 01:24:30 +0100 |
|---|---|---|
| committer | Erwin de Haan <EraYaN@users.noreply.github.com> | 2018-12-30 01:25:42 +0100 |
| commit | 9c1c29325d0c5693f36059b60954e2af2834205e (patch) | |
| tree | eff7f3f0e5c8760f6b383ffaf4636f505bcc8fe4 /MediaBrowser.Controller/Entities/BaseItemExtensions.cs | |
| parent | de7fcaadb3d8fa77802ddcfb9bbd5b9306c49224 (diff) | |
Added extra extension method that create a new instance of the destination object.
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItemExtensions.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItemExtensions.cs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs index 97e56d1fd..8ab1788b5 100644 --- a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs +++ b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs @@ -68,7 +68,9 @@ namespace MediaBrowser.Controller.Entities /// </summary> /// <param name="source">The source object.</param> /// <param name="dest">The destination object.</param> - public static void DeepCopy<T, TU>(this T source, TU dest) + public static void DeepCopy<T, TU>(this T source, TU dest) + where T : BaseItem + where TU : BaseItem { var sourceProps = typeof (T).GetProperties().Where(x => x.CanRead).ToList(); var destProps = typeof(TU).GetProperties() @@ -87,6 +89,19 @@ namespace MediaBrowser.Controller.Entities } + /// <summary> + /// Copies all properties on newly created object. Skips properties that do not exist. + /// </summary> + /// <param name="source">The source object.</param> + public static TU DeepCopy<T, TU>(this T source) + where T : BaseItem + where TU : BaseItem, new() + { + var dest = new TU(); + source.DeepCopy(dest); + return dest; + } + } } |
