尽管进行了搜索,但我还没有找到解决问题的方法:
我正在尝试对Windows.Networking.Sockets.StreamSocket进行子类化,以使其在我的WP8应用程序中作为单例提供:
class StreamSocketSingleton : StreamSocket {
private static StreamSocketSingleton instance;
public StreamSocketSingleton() : base() { }
public static StreamSocketSingleton GetInstance {
get {
if (instance == null) {
instance = new StreamSocketSingleton();
}
return instance;
}
}
目前为止,一切都好。但我显然需要调用 StreamSocket 函数,例如 ConnectAsync、GetInputStream 等。
我正在尝试使用基本关键字,例如基本。连接异步:
public void ConnectAsync(HostName hostName, String serviceName) {
base.ConnectAsync(hostName, serviceName);
}
然而,Visual Studio声称"对象"不包含ConnectAsync的定义。对我来说,看起来我是从 Object 子类化的,而我不是(对吧?
希望有人能帮助我!
干杯
无需调用基类。您可以自由拨打电话
StreamSocketSingleton instance = new StreamSocketSingleton();
instance.ConnectAsync(hostName, serviceName);
或者如果你在你的类声明中
this.ConnectAsync(hostName, serviceName);
至于这个特定的代码,我有 2 个问题:
- 如果你真的在做一个单例,你的构造函数应该是私有的(即,除了单例之外,没有人能够实例化它)
- 据 MSDN 显示
StreamSocket
是密封的,因此您无法继承该类。您的代码不应编译。