예제 #1
0
 /// <summary>
 /// Formats the specified begin token.
 /// </summary>
 /// <param name="beginToken">The begin token.</param>
 /// <returns>The token in serialized form.</returns>
 protected override string Format(BeginToken beginToken) {
   var dict = new Dictionary<string, string> {
       {"name", beginToken.Name},
       {"id", beginToken.Id.ToString()}};
   return CreateNodeStart(typeCache[beginToken.TypeId], dict);
 }
예제 #2
0
 private void CompositeStartHandler(BeginToken token) {
   InstantiateParent();
   Type type = typeIds[(int)token.TypeId];
   try {
     parentStack.Push(new Midwife(type, (ICompositeSerializer)serializerMapping[type], token.Id));
   } catch (Exception e) {
     if (e is InvalidCastException || e is KeyNotFoundException) {
       throw new PersistenceException(String.Format(
         "Invalid composite serializer configuration for type \"{0}\".",
         type.AssemblyQualifiedName), e);
     } else {
       throw new PersistenceException(String.Format(
         "Unexpected exception while trying to compose object of type \"{0}\".",
         type.AssemblyQualifiedName), e);
     }
   }
 }