Я отправляю это в группу. Похоже, что потокобезопасный, общий и следует шаблону Вы можете наследовать от него. Это связано со словами других.
public class Singleton<T> where T : class
{
class SingletonCreator
{
static SingletonCreator() { }
internal static readonly T Instance =
typeof(T).InvokeMember(typeof(T).Name,
BindingFlags.CreateInstance |
BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.NonPublic,
null, null, null) as T;
}
public static T Instance
{
get { return SingletonCreator.Instance; }
}
}
Предполагаемая реализация:
public class Foo: Singleton<Foo>
{
private Foo() { }
}
Тогда:
Foo.Instance.SomeMethod();