在不同页面中使用StreamSocket对象

时间:2013-11-13 16:45:19

标签: c# oop windows-phone stream-socket-client

这似乎是一个陈腐的问题,因为我是面向对象编程的新手,但我正在开发一个Windows Phone应用程序,我很好奇程序中的_socket对象。

我在下面使用的代码工作,我通过UART将此字节数组通过蓝牙发送到我的微处理器。

private async void ConnectToDevice(PeerInformation peer)
{
        if (_socket != null)
        {
            _socket.Dispose();
        }

        try
        {
            _socket = new StreamSocket();
            await _socket.ConnectAsync(peer.HostName, "{00001101-0000-1000-8000-00805F9B34FB}");

            byte[] bytesToSend = new byte[5] {8,2,3,14,5} ;
            var buffer = GenerateData(bytesToSend);

            await _socket.OutputStream.WriteAsync(buffer);

            MessageBox.Show("Connected to Bluetooth!");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

            _socket.Dispose();
            _socket = null;
        }
    }

我想要做的是从上面获取_socket对象并在我的应用程序的不同页面中使用它。

基本上,这个方法正在MainPage中执行,我希望能够访问我创建的“ConfigurationPage”中StreamSocket的填充字段。

如何在不创建新对象的情况下将此对象转到ConfigurationPage?

1 个答案:

答案 0 :(得分:0)

一种方法是在App.xaml.cs中的静态属性中声明它:

public static StreamSocket Socket { get; set; }

然后您可以从应用程序的任何位置访问它:

await App.Socket.ConnectAsync(peer.HostName, "{00001101-0000-1000-8000-00805F9B34FB}");