3

我想为 Motorolo MC 9190 G 手机开发简单的应用程序,它具有内置的条形码扫描仪,我想扫描条形码并将它们显示在消息框中。我没有手机,所以我必须在模拟器中测试它。当我在模拟器中部署代码时,它会给出空异常错误。我的代码是我添加 sample.barcode dll

Private barcodeReader As Symbol.Barcode.Reader // error occurs here itself 
barcodeReader = New Symbol.Barcode.Reader()
barcodeReader.Actions.Enable()
Dim nextReaderData As Symbol.Barcode.ReaderData = barcodeReader.GetNextReaderData()
MessageBox.Show(nextReaderData.Text)

我是初学者。请帮忙。。

4

1 回答 1

3

您需要创建一个接口和一个模拟,类似于以下内容:

interface IBarcodeReader
{
    string ReadBarcode();
}

public class SymbolReader : IBarcodeReader
{
    private Reader m_reader;

    public SymbolReader()
    {
        m_reader = new SymbolReader.Barcode.Reader;
        m_reader.Actions.Enable();
    }

    public string ReadBarcode()
    {
        return m_reader.GetNextReaderData().Text;
    }
}

public class MockReader : IBarcodeReader
{
    public string ReadBarcode()
    {
        return "MOCK ABCDE";
    }
}

然后在运行时,使用一些逻辑来确定您所在的平台并创建适当的实例:

public class Foo
{
    IBarcodeReader Reader { get; set; }

    public Foo()
    {
        if (ThisIsASymbolDevice)
        {
            Reader = new SymbolReader();
        }
        else
        {
            Reader = new MockReader();
        }

        var barcode = Reader.ReadBarcode();
    }
}
于 2013-03-01T13:31:14.537 回答