Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Monodevelop on Debian + Singleton

32K
02 августа 2010 года
LLIbIcpEP
32 / / 06.07.2008
Доброго времени суток. Вообщем довольно давно существует один проект на шарпе, в котором используется паттерн одиночка. Работает все на сервере под дебианом, кодил я в винде, в монодевелоп 2.4. Недавно перешел на дебиан, поставил там моно 2.6, монодевелоп 2.4 (из сорцов). Каково же было мое удивление, когда я стащил с гита сорцы своего проекта и они отказались компилится.
Юзал свой вариант класса-потомка для классов-синглтонов, попробовал использовать то, что сейчас на википедии.
Код:
public class Singleton<T> where T : class
{
  protected Singleton() { }
  private sealed class SingletonCreator<S> where S : class
  {
    private static readonly S instance = (S) typeof(S).GetConstructor(
                BindingFlags.Instance | BindingFlags.NonPublic,
                null,
                new Type[0],
                new ParameterModifier[0]).Invoke(null);
    public static S CreatorInstance
    {
      get { return instance; }
    }
  }
  public static T Instance
  {
    get { return SingletonCreator<T>.CreatorInstance; }
  }
}

Монодевелоп в обоих вариантах говорит:
 
Код:
Singleton.cs(38,38): Error CS0305: Using the generic type `Singleton<T>.SingletonCreator<S>' requires `2' type argument(s) (CS0305)

Эта строчка:
 
Код:
get { return SingletonCreator<T>.CreatorInstance; }

Я что-то не понял, в чем дело... :confused:
Всем заранее спасибо...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог