2016-02-26 2 views
0

У меня есть коллекция кортежейНаблюдаемая коллекция кортежей, как пометить элемент как не сериализуемые

ObservableCollection<Tuple<string, object, object>> oc = new ObservableCollection<Tuple<string, object, object>>(); 

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

Конечно, это не biggie, так как я могу циклически перемещаться по всем элементам и ставить их в нуль, но мне было интересно, могу ли я сделать это автоматически.

Спасибо заранее

--ADD-- Что приходит на ум сейчас делает класс MyTuple3, который наследуется от класса кортежами, в которых только первые два элемента, помеченный как serializables. Это, как говорится, все еще ищет что-то лучшее.

+1

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

ответ

0

Я не уверен, что я правильно понял вопрос, но почему бы вам не сделать что-то вроде

var toSerialize = oc.Take(2); 

А потом serialite toSerialize

+0

Почему downvoting? Не лучшее решение, возможно, но это неправильно? – Patrick

+0

@Patrick, это зависит от вашего вопроса: сериализация определенного количества элементов в коллекции или сериализация определенных свойств этих элементов. – icebat

+0

Решение может быть не общим. Я имею различный список кортежей из 3 элементов и должен иметь случаи: CASE (A) Я должен сериализовать все элементы кортежей item1, item2, item3. CASE (B) Я должен сериализовать только два элемента, поэтому item1 e item2. Короче говоря, в случае B, когда я десериализую все элементы, они должны быть нулевыми. – Patrick