最新评论
Re:将C#编译为javascript rex 2012-02-02 23:06
@finesite
那个不免费
Re:将C#编译为javascript finesite 2012-02-02 21:30
建议看看sharpkit (C# js 转化器)http://www.cnblogs.com/finesite/archive/2011/06/28/2091831.html
re: Emit生成Property ppchen(陈荣林) 2008-12-11 16:42
正需要,Copy。。。
re: C#2.0 Singleton 的实现 Stanley.Luo 2008-04-28 22:42
哪里要这么复杂.
将instance 声明为static readonly 就解决问题了,既保证单例,也保证线程安全。
protected static readonly T _instance = new T();
public static T Instance()
{
return _instance;
}
这个方法来自《大话设计模式》
re: C#2.0 Singleton 的实现 WOW玩家 2008-01-24 14:39
///
/// Singleton泛型类
///
///
public sealed class Singleton< T > where T : new()
{
private static T instance = default(T);
private static object lockHelper = new object();
private Singleton() { }
public static T GetInstance()
{
if (instance == null)
{
lock (lockHelper)
{
if (instance == null)
{
instance = new T();
}
}
}
return instance;
}
public void SetInstance(T value)
{
instance = value;
}
}
re: 五子棋:) hb 2007-12-09 12:57
hehe thank you !
re: C#2.0 Singleton 的实现 orichisonic 2007-08-02 11:32
有点花,玩了技术点
re: Remoting jazz 2007-06-24 20:12
好帖!正在找这方面的东西学,希望有完整的代码看看。
Dengyangjun ,用你说的继承方法好像不行吧,CreateInstance()是abstract,不是static,不能从Static的Instance property中调用,把CreateInstance()做成static,又失去了使用继承的意义,不知道我说的对不对
re: 五子棋:) luck 2007-05-22 12:50
l3dgoodboy6@yahoo.com.cn
谢谢,急用,非常感谢
re: Remoting rex 2007-04-05 23:17
@hy
继承自ByRef 的class是可以跨AppDomain调用的
re: Remoting[未登录] hy 2007-03-30 14:48
你好
我现在也在学习.NET Remoting关于这方面的内容
在书上看到这样一句话,不知道该如何理解,请你指导一二
"The big advantage here is that abstract base classes are, contrary to the shared interfaces, capable of being passed around as parameters for methods located in different AppDomains"
@littlestone
这本书我已经看过很多年了:)
re: C#2.0 Singleton 的实现 littlestone 2006-07-13 11:04
一个好的单件模板实现是一个非常复杂的问题,楼主可参考网上相关讨论,或<<modern C++ design>>(译名:C++设计新思维),相信会给楼主带来很刺激的技术冲击.
re: 五子棋:) perfect 2006-06-29 10:01
kebukeyi gei wo yifen a ?
re: C#2.0 Singleton 的实现 flysnow 2006-06-18 21:38
public class Foo
{
public static Foo instance = new Foo();
protected Foo() { }
}
这样岂不是很简单
re: C#2.0 Singleton 的实现 Dengyangjun 2006-06-12 11:42
按照作者的想法,我来完善一个:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace Midapexsoft
{
/// <summary>
/// 单件模式Helper类
/// </summary>
/// <typeparam name="T">需要实现单件模式的类型。必须有一个默认的无参构造函数</typeparam>
public abstract class Singleton<T>
{
private static T instatnce;
private static Object o = new object();
public static T Instance
{
get
{
if (instatnce == null)
{
lock (o)
{
if (instatnce == null)
{
//需要使用非公共的无参构造函数,不能使用new T(),因为它不支持非公共的无参构造函数
instatnce = (T)Activator.CreateInstance(typeof(T), true);
}
}
}
return instatnce;
}
}
}
}
re: C#2.0 Singleton 的实现 winking 2006-06-11 13:16
不错的想法。可以考虑用继承.
public abstract class Singletion<T>
{
protected abstract T CreateInstace();
...
public static T Instance
{
get {
if (_instance == null)
{
_instance = CreateInstance();
}
return _instance;
}
}
}
public class Foo: Singleton<T>
{
protected override Foo CreateInstance()
{
//create object
}
}
re: C#2.0 Singleton 的实现 fxltdwc 2006-06-07 14:11
什么花哨阿。先搞清楚单件模式在什么地方使用再说吧
@lextm
不安全.需要的话应该加上,我要表达的意思是用这种方式给一些类"注入"一些方法,让他们拥有其它功能:)
re: C#2.0 Singleton 的实现 lextm 2006-05-26 12:41
主要是没有了
lock(){
}
不知道是不是线程安全。
re: C#2.0 Singleton 的实现 cokkiy 2006-05-24 00:12
补充一下:_instance = new T(); T()完全可以是私有或保护的成员啊。
re: C#2.0 Singleton 的实现 cokkiy 2006-05-24 00:09
为什么不用
_instance = new T();
呢?搞那么花哨?而且用Activator.CreateInstance访问保护成员是不是有问题?虽然反射可以访问保护/私有成员。
@Andrew Xu
你试试就知道是可以的...反射可以获得所有私有/保护成员信息
re: C#2.0 Singleton 的实现 Andrew Xu 2006-05-19 10:54
@rexz
问题在于,即使是使用 Activator,仍然不能创建一个只有 private constructor 的对象,这是违反.NET 安全策略,并且会抛出异常的。
@Andrew Xu
我希望T的new是私有的,否则用户就可能破坏Singleton的设计本意,用new生成"第二个"实例
re: C#2.0 Singleton 的实现 Andrew Xu 2006-05-14 11:10
为什么要写用 Activator?直接写:
_instance = new T();
就可以了。当然需要加一个模板参数约束:
where T: new()
re: C#2.0 Singleton 的实现 flyaway00 2006-04-30 10:46
很精彩。
re: C#2.0 Singleton 的实现 deadnight 2006-04-27 06:27
坦白的说.....这是一个非常糟糕的实现.......
re: *.ashx:HttpHandler的另一种用法 hellogoogle 2006-04-12 15:31
非常好
re: C#2.0 Singleton 的实现 newhappy 2006-04-05 09:56
而且 thread safe方面 么作
re: C#2.0 Singleton 的实现 newhappy 2006-04-05 09:55
太花绍了
Activator.CreateInstance<T>()不带任何参数,因此它不能访问保护或者私有的constructor.而希望成为singleton的class必须没有public的构造函数,否则就不能保证用户不会调用new来构造一个实例
re: C#2.0 Singleton 的实现 edison1024 2006-01-13 14:31
_instance = System.Activator.CreateInstance<T>();
re: 五子棋:) coos 2005-10-09 16:45
能不能给我发一份 3q
coos@zj.com
re: 五子棋:) 啊雨 2005-09-19 08:35
可不可以给我一份呀,我是个初学者
谢谢!yuexinyua@yahoo.com.cn
例如你有一个图片,存放在e:\Image\Logo.jpg.
如果你的网站有一个页面需要显示,那么你会将这个目录也放入一个虚拟路径,并且用
<img src="
http://localhost/image/Logo.jpg">来显示它。
现在你写了一个HttpHandler,专门将上面的图片读出,并返回。用上面的办法,在你的网站上配置ashx在某个路径下,那么你现在可以不用将e:\Image目录建立成虚拟路径,可以用<img src="
http://localhost/Handler/logo.ashx">来代替。
这句不明白。请指教一下。我的QQ:6532053
msn:web718@hotmail.com
例如:
http://xxx/test.ashx 就可以了。
这样的使用对于一些图片显示等特别有用。例如,有大量的图片存在服务器硬盘上,有client对image.ashx请求时,HttpHandler从本地路径读取相应的图片,在response中返回。这样就不需要把这些图片放到虚拟目录下,直接可以使用了。
client也可以调用image.dll进行处理的
re: Remoting Ghost 2005-06-30 20:23
希望看到一个完整的例子
re: Remoting 蛙蛙池塘 2005-06-30 20:17
不懂,路过。。。,学习一下。这个博客园没有收藏帖子的功能吗
re: Remoting 小飞 2005-06-30 19:11
还有一种方法就是建一个和服务端一样的类,但没有代码实现只有方法,相当于一二方法的结合,该类只部署在客户端,业务类在服务端,避免了业务逻辑的暴露,有可以体现New的快感!;-)
quics start 已有类似的描述 Microshaoft 2005-06-30 18:03
re: Remoting xiao*p 2005-06-30 17:53
我们的项目使用的就是第二种方法
感觉上这样做却是不错的……~……~……~