Глубокое копирование словаря (хеш-таблицы) в PowerShell - PullRequest
8 голосов
/ 19 сентября 2011

Clone() делает только поверхностное копирование, и кажется, что нет простого способа сделать это в C # без небольшого количества сериализации обертывания кода ( Как сделать глубокую копию объекта в .NET (C # конкретно)? ).Есть ли простой способ сделать это в Powershell без ссылки на внешние библиотеки?

1 Ответ

11 голосов
/ 19 сентября 2011

Все библиотеки, которые вам нужны, находятся там, когда вы запускаете оболочку, так что это просто для реализации глубокой копии согласно вашей ссылке.

function Clone-Object {
    param($DeepCopyObject)
    $memStream = new-object IO.MemoryStream
    $formatter = new-object Runtime.Serialization.Formatters.Binary.BinaryFormatter
    $formatter.Serialize($memStream,$DeepCopyObject)
    $memStream.Position=0
    $formatter.Deserialize($memStream)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...