Хорошо, здесь есть несколько разных способов.
Во-первых, и самое главное: убедитесь, что это именно то, что вы действительно хотите сделать.Если кто-то подключается к вам и вы храните информацию о клиенте, вы, вероятно, хотите нестатический экземпляр класса.Что-то вроде:
public string OuterRequest(string someInput)
{
Client requestor = new Client(); // Client instance for this request
DoSomething(requestor);
DoSomethingElse(requestor);
return "Something";
}
... видите, к чему я клоню?Кто-то генерирует запрос, и вы создаете новый экземпляр класса Client для хранения этой информации.Что-нибудь, что нуждается в этих данных?Вы передаете им экземпляр, чтобы они могли получить информацию о запросе / клиенте.
Далее, если вы положительный , что вам действительно нужен один экземпляр?
В этом случае следующий вариант - сделать то, что называется «Синглтон».В конечном итоге вам нужны два строительных блока для этого:
- Закрытый конструктор
- Открытое статическое свойство, которое является экземпляром класса
Итакв коде, вы смотрите на что-то вроде:
public class Client
{
private Client() { } // private constructor
public static Client instance = new Client();
// usage: Client.instance.WhateverPropertyYouWant;
}
Вы хотите это просто над простым статическим классом.Зачем?Потому что таким образом у вас есть возможность создать модульный тест, который раскручивает второй экземпляр класса Client для тестирования функциональности, не путая свойства / etc основного / обычного экземпляра класса Client.