public virtual CodeStatementCollection SerializeMember(IDesignerSerializationManager manager, object owningObject, MemberDescriptor member)
 {
     if (manager == null)
     {
         throw new ArgumentNullException("manager");
     }
     if (owningObject == null)
     {
         throw new ArgumentNullException("owningObject");
     }
     if (member == null)
     {
         throw new ArgumentNullException("member");
     }
     CodeStatementCollection statements = new CodeStatementCollection();
     if (base.GetExpression(manager, owningObject) == null)
     {
         CodeExpression expression = new CodeVariableReferenceExpression(base.GetUniqueName(manager, owningObject));
         base.SetExpression(manager, owningObject, expression);
     }
     PropertyDescriptor propertyToSerialize = member as PropertyDescriptor;
     if (propertyToSerialize != null)
     {
         base.SerializeProperty(manager, statements, owningObject, propertyToSerialize);
         return statements;
     }
     EventDescriptor descriptor = member as EventDescriptor;
     if (descriptor == null)
     {
         throw new NotSupportedException(System.Design.SR.GetString("SerializerMemberTypeNotSerializable", new object[] { member.GetType().FullName }));
     }
     base.SerializeEvent(manager, statements, owningObject, descriptor);
     return statements;
 }