Как я игнорирую подписчиков события при сериализации объекта?

Будучи укушенным этим, я имею привычку включать локально определенные переменные во внутреннюю область, которую я использую для переноса в любое замыкание. В вашем примере:

foreach (var s in strings)
{
    query = query.Where(i => i.Prop == s); // access to modified closure

я делаю:

foreach (var s in strings)
{
    string search = s;
    query = query.Where(i => i.Prop == search); // New definition ensures unique per iteration.

Когда у вас есть эта привычка, вы можете избежать ее в очень редком случае, который вы на самом деле намеревались привязать к внешним областям. Честно говоря, я не думаю, что когда-либо делал это.

14
задан xyz 11 May 2011 в 14:00
поделиться

1 ответ

Вы должны включить « field: » как часть атрибута [NonSerialized] в событие .

т.е.:

[field: NonSerialized]
public event EventHandler Roar;
25
ответ дан 1 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: