У меня есть следующий метод:
private string _google = @"http://www.google.com";
public ConnectionStatus CheckCommunicationLink()
{
//Test if we can get to Google (A happy website that should always be there).
Uri googleURI = new Uri(_google);
if (!IsUrlReachable(googleURI, mGoogleTestString))
{
//The internet is not reachable. No connection is available.
return ConnectionStatus.NotConnected;
}
return ConnectionStatus.Connected;
}
Вопрос в том, как заставить его не пытаться подключиться к Google (таким образом избегая зависимости от интернета).
Самый простой способ - взять _google
и изменить его так, чтобы он указывал на что-то локальное для машины. Но для этого мне нужно сделать _google
public
. Я бы предпочел не делать этого, потому что приложение не должно изменять _google
.
Я мог бы сделать _google параметром для перегруженной версии метода (или конструктора объекта). Но это также открывает интерфейс, который я никогда не хочу использовать в приложении.
Другой вариант - сделать _google
internal
. Но для приложения internal
совпадает с public
. Таким образом, в то время как другие не могут видеть _google
, интерфейс приложения все еще предоставляет его.
Есть ли лучший способ? Если это так, пожалуйста, укажите это.
(Также, пожалуйста, не выбирайте мой пример, если он действительно не помогает найти решение. Я прошу идеи по таким общим сценариям, а не обязательно по этому точному примеру.)