Я даже не уверен, правильно ли я сформулировал вопрос, но постараюсь объяснить как можно яснее на примере:
В следующем примере сценария:
1) Возьмите такой класс, как этот:
public class foo
{
public string firstName {get;set;}
public string lastName {get;set}
}
2) Сериализуйте это в JSON, передайте по проводнику в браузер.
3) Браузер десериализует это и превращает JSON в объект JavaScript, чтобы вы могли затем обращаться к таким свойствам:
var foo = deSerialize("*******the JSON from above**************");
alert(foo.firstName);
alert(foo.lastName);
Что если теперь новый разработчик приступит к работе над этим проектом, решит, что firstName
больше не является подходящим именем свойства. Допустим, они используют ReSharper для переименования этого свойства, поскольку ReSharper довольно неплохо справляется с поиском (почти) всех ссылок на свойство и соответствующим образом переименовывает их.
Однако ReSharper не сможет переименовать ссылки в коде JavaScript (# 3), так как он не может знать, что они действительно означают одно и то же. Это означает, что на программиста остается обязанность вручную находить эти ссылки и переименовывать их тоже.
Риск состоит в том, что если об этом забудут, никто не узнает об этой ошибке, пока кто-то не проверит эту часть кода, или, что еще хуже, проскользнет к клиенту.
Вернуться к актуальному вопросу:
Я пытался придумать решение этой проблемы для некоторых, как сильно печатать имена этих свойств при использовании в javascript, чтобы такой инструмент, как ReSharper, мог успешно переименовать ВСЕ использования этого свойства (и точно)?
Вот то, о чем я думал, например (это, очевидно, не сработает, если я не сделаю какие-то статические свойства)
var foo = deSerialize("*******the JSON from above**************");
alert(foo.<%=foo.firstName.GetPropertyName()%>)
alert(foo.<%=foo.lastName.GetPropertyName()%>)
Но это, очевидно, не практично. У кого-нибудь есть мысли по этому поводу?
Спасибо и благодарность всем талантливым людям, отвечающим на вопросы на этом сайте.
Это мой эксперимент, так что любые предложения приветствуются.