Что происходит, когда вы объявляете XNamespace и присваиваете строковое значение?
Вот пример из MSDN для XNamespace:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root", "Content");
Console.WriteLine(root);
Я не уверен, что происходит в первой строке. Происходит ли какое-то неявное преобразование?
1 ответ
Решение
XNamespace
имеет статический Get
метод, который принимает строковый параметр и возвращает XNamespace
пример. Таким образом, вы можете переписать строку как
XNamespace aw = XNamespace.Get("http://www.adventure-works.com");
В опубликованной вами версии вы будете использовать неявное преобразование, определенное для строки. Предположительно, его реализация просто вызывает вышеупомянутый способ. Пример возможной реализации:
public static implicit operator XNamespace(string name)
{
return Get(name);
}