static void Main(string[] args) { Console.WriteLine("Name is '{0}'", GetName(new {args})); Console.ReadLine(); } static string GetName
(T item) where T : class { var properties = typeof(T).GetProperties(); Enforce.That(properties.Length == 1); return properties[0].Name; } [Еще 112] детали находятся в это сообщение в блоге .
Не прошло и секунды после публикации вопроса, как мне пришел ответ, вот рабочая реализация демаршала:
def unmarshal( reader: HierarchicalStreamReader, context: UnmarshallingContext ) = {
var list : List[_] = Nil
while (reader.hasMoreChildren()) {
reader.moveDown();
val item = readItem(reader, context, list);
list = list ::: List(item) // be sure to build the list in the same order
reader.moveUp();
}
list
}
Существует только один экземпляр пустого списка, которым является объект Nil
.