Fully implemented property-based cloning for the expression tree cloner
git-svn-id: file:///srv/devel/repo-conversion/nusu@244 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
parent
db8c93eabd
commit
0f2bb60ea5
4 changed files with 89 additions and 32 deletions
|
@ -120,7 +120,11 @@ namespace Nuclex.Support.Cloning {
|
|||
/// <returns>A clone of the original instance</returns>
|
||||
private static object shallowCloneComplexFieldBased(object original) {
|
||||
Type originalType = original.GetType();
|
||||
object clone = FormatterServices.GetUninitializedObject(originalType);
|
||||
#if (XBOX360 || WINDOWS_PHONE)
|
||||
object clone = Activator.CreateInstance(originalType);
|
||||
#else
|
||||
object clone = FormatterServices.GetUninitializedObject(originalType);
|
||||
#endif
|
||||
|
||||
FieldInfo[] fieldInfos = originalType.GetFields(
|
||||
BindingFlags.Public | BindingFlags.NonPublic |
|
||||
|
@ -197,7 +201,11 @@ namespace Nuclex.Support.Cloning {
|
|||
/// <returns>A clone of the original instance</returns>
|
||||
private static object deepCloneComplexFieldBased(object original) {
|
||||
Type originalType = original.GetType();
|
||||
object clone = FormatterServices.GetUninitializedObject(originalType);
|
||||
#if (XBOX360 || WINDOWS_PHONE)
|
||||
object clone = Activator.CreateInstance(originalType);
|
||||
#else
|
||||
object clone = FormatterServices.GetUninitializedObject(originalType);
|
||||
#endif
|
||||
|
||||
FieldInfo[] fieldInfos = originalType.GetFields(
|
||||
BindingFlags.Public | BindingFlags.NonPublic |
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue