Здесь решение быстрое и легкое, что работало для меня без передачи на сериализацию / десериализацию.
public class MyClass
{
public virtual MyClass DeepClone()
{
var returnObj = (MyClass)MemberwiseClone();
var type = returnObj.GetType();
var fieldInfoArray = type.GetRuntimeFields().ToArray();
foreach (var fieldInfo in fieldInfoArray)
{
object sourceFieldValue = fieldInfo.GetValue(this);
if (!(sourceFieldValue is MyClass))
{
continue;
}
var sourceObj = (MyClass)sourceFieldValue;
var clonedObj = sourceObj.DeepClone();
fieldInfo.SetValue(returnObj, clonedObj);
}
return returnObj;
}
}
EDIT: требуется
using System.Linq;
using System.Reflection;
Вот как я его использовал
public MyClass Clone(MyClass theObjectIneededToClone)
{
MyClass clonedObj = theObjectIneededToClone.DeepClone();
}
После установки Черепахи (разделите клиент SVN, не требуемый), создайте новую пустую папку для проекта где-нибудь и щелкните правой кнопкой по нему в Windows. Должна быть опция для SVN Checkout
. Выбор той опции откроет диалоговое окно. Вставьте URL, который Вы отправили выше в первом текстовом поле того диалогового окна, и нажмите "OK".
Создайте папку, где Вы хотите сохранить код и щелчок правой кнопкой по нему. Выберите SVN Checkout... и тип http://wittytwitter.googlecode.com/svn/trunk в URL поля репозитория.
можно также работать
svn checkout http://wittytwitter.googlecode.com/svn/trunk
из командной строки в папке, которую Вы хотите сохранить ею (svn.exe должен быть в Вашем пути, конечно).
Щелкните правой кнопкой по папке, которую Вы хотите загрузить в и открыться tortoise-svn -> repo-browser
.
Входят в URL выше в следующем окне.
щелчок правой кнопкой по trunk
папка и выбирает checkout
(если Вы хотите обновить от SVN позже), или export
(если Вы просто хотите свою собственную копию того пересмотра).
Руководство объясняет как коду контроля:
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html
Если у Вас есть Черепаха SVN, как я делаю, беру ссылку Google и ТОЛЬКО копирую URL.
Регулярный - (svn контроль http://wittytwitter.googlecode.com/svn/trunk/, wittytwitter-только-для-чтения)
Измененный к URL - (http://wittytwitter.googlecode.com/svn/trunk/ wittytwitter)
Создайте папку, щелкните правой кнопкой по вакууму. Можно Просмотреть Repo или просто загрузить все это через контроль.
Я не знаю, необходимо ли быть участником Google или нет, но я подписался на всякий случай. Весело проведите время с кодом.
Мизантропия
bin
папка к Вашей переменной окружения PATHcd
к месту, где Вы хотите загрузить (т.е. контроль) код проектов.Если вы находитесь за брандмауэром, вам необходимо настроить клиент Tortoise для подключения к нему. Щелкните правой кнопкой мыши где-нибудь в окне, выберите «TortoiseSVN», выберите «настройки», а затем выберите «сеть» в левой части панели. Заполните все обязательные поля. Удачи.