Похоже, вы ищете DataContract :
using System.Runtime.Serialization;
[DataContract]
public class person
{
[DataMember]
string Id;
[DataMember]
string Name;
}
Проверьте Использование контрактов данных для получения дополнительной информации о DataContracts и WCF.
EDIT
Не уверен, что это сработает или нет, но, как я отметил в своем ответе на ваш комментарий, существует перегрузка метода CreateMessage, который принимает XmlObjectSerializer.Документы MSDN на нем довольно тонкие, но я думаю что-то вроде этого может сделать это:
Message msg = Message.Create(mv, action, new person(), new DataContractSerializer(typeof(person)));
Я не проверял это, но, по крайней мере, это может помочь вам указатьправильное направление.
Для DataContractSerializer
необходимо предоставить DataContract (person
в первой части моего ответа).