反射破坏单例

Posted hyhy904

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射破坏单例相关的知识,希望对你有一定的参考价值。

class SingLeton

private static SingLeton inntleton = null;
private ArrayList stlit = null;
//私有构造函数
private SingLeton()


public static SingLeton singl()

if (inntleton == null)

inntleton = new SingLeton(http://www.amjmh.com/v/);


return inntleton;


然后通过反射创建这个单例对象并且对比

//调用私有方法构造函数
var ass = Assembly.Load("TextCord");
var type = ass.GetType("TextCord.SingLeton");
var singletonCreate = Activator.CreateInstance(type, true);
var singleton = SingLeton.singl();

Console.WriteLine(object.ReferenceEquals(singleton, SingLeton.singl()));//true

 

以上是关于反射破坏单例的主要内容,如果未能解决你的问题,请参考以下文章

枚举实现单例避免被反射破坏的原因

设计模式 创建者模式 -- 单例模式存在的问题和解决办法(序列化反序列化破坏单例模式 & 反射破坏单例模式)

反射破坏单例

单例模式_反射破坏单例模式_枚举类_枚举类实现单例_枚举类解决单例模式破坏

设计模式:一文搞定单例模式(防止反射反序列化clone破坏单例)Singleton Pattern-Java版

详解单例模式