C# эквивалент memcpy

[изменить] относительно вашего serialize разъяснения: Насколько я serialization понимаю, у вас есть N объектов, каждый csharp из которых имеет (прямую) ссылку deserialize на объект шаблона. Вы хотите serializer выполнить обратную запись serialisation в шаблон, чтобы все объекты deserialize «видели» эти изменения.

Предложение: внедрить copying брокер шаблонов.

class TemplateProvider
{
   public MyData Template { get; set; }
}

Вместо передачи c-sharp шаблона передайте объекту c#.net поставщика шаблона.

Чтобы serialization упростить синтаксис компонентов, вы serialisation можете добавить свойство c#-language (частное / внутреннее?)

MyData Template { get { return m_templateProvider.Template; } }
void UpdateTemplate() { m_templateProvider.Template = 
                            (MyData) this.MemberwiseClone(); }

Провайдер visual-c# шаблонов также упрощает блокировку c#.net в многопоточных сценариях.


Короче unserialize говоря, только если вы не serialized сделаете это сами. Но почему c# бы не создать новый объект, если c# вы все равно переопределите csharp все свойства?

memcopy и аналогичные serializing конструкции низкого уровня unserialize не поддерживаются, поскольку serialization они подрывают гарантии, предоставляемые copying средой.

Мелкая копия структур serialisation создается путем присваивания. Для visual-c# классов это метод MemberwiseClone, но, как copying вы говорите, это создает visual-c# новый объект.

Для этого нет serialisation встроенного способа, и, поскольку c# он потенциально нарушает serialization инкапсуляцию, его в любом c# случае следует использовать .cs-file с осторожностью.

Вы можете visual-c# создать общую процедуру, используя c-sharp отражение, но будет ли она serialized работать или нет, зависит c-sharp от самого класса. И да, это deserialize будет сравнительно медленно.

Осталось csharp лишь поддержать его с помощью serialize настраиваемого интерфейса. Вы c-sharp можете предоставить обычную serialisation подпрограмму «Shallow Copy», которая c# проверяет интерфейс и использует c# его, а в противном случае serializer возвращается к отражению. Это c# делает функциональность общедоступной, и c-sharp вы можете оптимизировать serialize классы, для которых производительность csharp имеет значение позже.

c#

serialization

copying

2022-10-23T06:13:57+00:00
Вопросы с похожей тематикой, как у вопроса:

C# эквивалент memcpy