Замена интерфейса IModelObject абстрактным или конкретным типом и использование наследования с XMLInclude возможно, но похоже на уродливое обходное решение.
blockquote>Если можно использовать абстрактный Я бы рекомендовал этот маршрут. Он по-прежнему будет чище, чем использование ручного сериализации. Единственная проблема, которую я вижу с абстрактной базой, заключается в том, что вам все еще нужен конкретный тип? По крайней мере, так я использовал его в прошлом, что-то вроде:
public abstract class IHaveSomething {public abstract string Something {get; задавать; }} public class MySomething: IHaveSomething {string _sometext; public override string Что-то {get {return _sometext; } set {_sometext = значение; }}} [XmlRoot ("abc")] public class seriaized {[XmlElement ("item", typeof (MySomething))] общедоступные данные IHaveSomething; }
Решение, к которому я придумал, состояло в том, чтобы составить абсолютный URL-адрес и присвоить его window.location. Перезагрузка () вызвала некоторые проблемы с внутренними переадресациями.
function get_full_url (url_path) {var loc = window.location; var url = "" + loc.protocol + "//" + loc.host + url_path; return url; } function refresh_page_absolute (url_path) {window.location.href = get_full_url (url_path)}
location.replace ()
- ошибка. Вы должны передать адрес в метод replace
в качестве аргумента. В противном случае вы эффективно переходите в undefined
, который, как указывает сообщение «URI некорректно», не является допустимым адресом.
Я не знаю, пытаясь сделать ... если вы хотите перезагрузить страницу, вы действительно должны использовать location.reload ()
. Но «заменить URI текущего местоположения (ничего)» не имеет смысла.