我可能要疯了,但我发誓我看到过一个片段,允许您的代码的消费者编写new Foo()
,而像FooProxy.Create()
这样的东西在幕后被调用,而不是构造函数。我一直在找啊找啊,可就是找不到。我根本不打算使用它,因为对我来说它看起来像一个反模式,但我想确保这不是我凭空想出来的。
回复似乎是没有....你只是在做梦。从https://stackoverflow.com/a/14343648/613130:
Q:创建构造函数(?)从缓存中检索对象或重新创建null
A:你不能创建这样的构造函数。构造函数总是创建一个新对象。相反,创建一个静态工厂方法:
请注意,使用Fody(一个能够修改汇编后编译的工具)来创建一个插件,直接替换new Foo()
到FooProxy.Create()