Gibran Castillo Ответов: 1

Как создать объект, который я могу использовать в любое время в течение срока службы моего настольного приложения?


Я поискал в Google и Code Project, но не нашел ничего полезного.

Мое настольное приложение c# SoftPhone (использующее платформу .NET 3.5) должно захватывать две точки данных из голосового взаимодействия, когда пользователь инициирует передачу или конференц-связь (я уже делаю это), и хранить эти две точки данных в объекте, доступ к которому приложение может получить позже в течение срока действия голосового взаимодействия (телефонный звонок).)

Что я уже пробовал:

Я попытался создать Синглтон, но не думаю, что сделал это правильно, или это не относится к моему сценарию настольного приложения c# SoftPhone

[no name]

Я бы сказал, что Синглтон, но поскольку вы на самом деле не описали реальную проблему с вашим кодом, это довольно трудно сказать.

Gibran Castillo

Я не знаю, где создать экземпляр моего синглтона в первый раз, чтобы затем использовать его

Я думаю, что создаю экземпляр класса originalInboundData singleton в классе, где все init transfer и init conference регистрируются в приложении

Мой синглтонный класс C# выглядит следующим образом:

публичный класс OriginalInboundData
{
# объявление поля региона
частная строку точка1 = "";
частная строку точка2 = "";
частная строку точка3 = "";
частная строку точка4 = "";

private static OriginalInboundData instance = null;
private static readonly object padlock = new object();
#endregion

#region Properties Declaration
public string DataPoint1
{
    get { return dataPoint1; }
    set { dataPoint1 = value; }
}
 
public string DataPoint2
{
    get { return dataPoint2; }
    set { dataPoint2 = value; }
}
 
public string DataPoint3
{
    get { return dataPoint3; }
    set { dataPoint3 = value; }
}
 
public string DataPoint4
{
    get { return dataPoint4; }
    set { dataPoint4 = value; }
}
 
public static OriginalInboundData Instance
{
    get
    {
        lock (padlock)
        {
            if (instance == null)
            {
                instance = new OriginalInboundData();
            }
 
            return instance;
        }
    }
}
#endregion

#region Constructor
OriginalInboundData()
{
    //Do nothing
}


Таким образом, я не получаю ошибку, я пытаюсь выяснить, где вызвать синглтон в первый раз, чтобы они имели доступ к нему, когда я захватываю точки данных во время передачи init или конференции init

[no name]

И причина, по которой вы не можете создать экземпляр своего синглтона при запуске, заключается в том, что...?

[no name]

Право право право. Извини, забыл, что мы говорили о Синглетах. Красота синглтона заключается в том, что если вы получаете экземпляр синглтона, а он еще не существует, он создает для вас новый экземпляр. В противном случае вы получите существующий экземпляр. Так что звони, когда понадобится.

1 Ответов

Рейтинг:
12

#realJSOP

Вы можете создать статический класс, который содержит все, что вы хотите. У меня есть один такой, который я называю "глобалами".