настоящее время у меня это:Передача параметра делегировать функции
instance = new Class1<Type1>(
"param1",
() =>
new ViewDataDictionary<Type2>(
new Class2
{
Prop1= CreateList(new List<long> { 234 }),
Prop2= CreateList(new long[] { 234 })
}));
Я хочу передать переменную в функции CreateList вместо этого. Что-то вроде этого
long p1 = 123;
instance = new Class1<Type1>(
"param1",
() =>
new ViewDataDictionary<Type2>(
new Class2
{
Prop1= CreateList(new List<long> { p1}),
Prop2= CreateList(new long[] { p1})
}));
Но это дает мне ошибку сериализации, если я пытаюсь сделать выше. Все классы маркируются сериализуемыми.
Я хочу сделать это как общий делегат. Может существовать функция, выполняемая делегатом, которая не может иметь никаких параметров или иметь большее количество параметров. Я думал о наличии массива объектов. Но есть ли лучший способ? – user99322
Ну, чтобы сохранить класс сериализуемым, ваше лямбда-выражение не должно захватывать какую-либо локальную переменную. Таким образом, единственное решение, которое я вижу, будет охватывать все случаи, - это использовать массив объектов (или, может быть, словарь) в качестве параметра для делегата, хотя это не очень удобно –