Windows Phone 8 - 在 C# 中从子级调用框架类

本文关键字:调用 框架 Phone Windows | 更新日期: 2023-09-27 17:55:48

尽管进行了搜索,但我还没有找到解决问题的方法:

我正在尝试对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 子类化的,而我不是(对吧?

希望有人能帮助我!

干杯

Windows Phone 8 - 在 C# 中从子级调用框架类

无需调用基类。您可以自由拨打电话

StreamSocketSingleton instance = new StreamSocketSingleton();
instance.ConnectAsync(hostName, serviceName);

或者如果你在你的类声明中

this.ConnectAsync(hostName, serviceName);

至于这个特定的代码,我有 2 个问题:

  1. 如果你真的在做一个单例,你的构造函数应该是私有的(即,除了单例之外,没有人能够实例化它)
  2. 据 MSDN 显示StreamSocket是密封的,因此您无法继承该类。您的代码不应编译。