Я ответил на это в вашем исходном сообщении, но я думаю, что это лучше сформулировано, поэтому я также опубликую его здесь, если оно будет закрыто как дубликат, вы можете изменить исходное сообщение, чтобы отразить этот вопрос.
Я не думаю, что это возможно без использования Title в качестве пользовательского типа или явной реализации методов сериализации.
Вы можете создать собственный класс, например ...
class MovieTitle
{
[XmlText]
public string Title { get; set; }
[XmlAttribute(Namespace="http://www.myxmlnamespace.com")]
public string uid { get; set; }
public override ToString() { return Title; }
}
[XmlRoot("MovieClass")]
public class Movie
{
[XmlElement("Movie")]
public MovieTitle Title;
}
, который будет производить:
<MovieClass xmlns:x="http://www.myxmlnamespace.com">
<Movie x:uid="movie_001">Armagedon</Movie>
</MovieClass>
Хотя сериализатор будет компенсировать неизвестные пространства имен с результатом, которого вы, вероятно, не ожидаете.
Вы можете избежать странного поведения, объявив свои пространства имен и предоставив объект сериализатору.
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("x", "http://www.myxmlnamespace.com");