小编A-s*_*ent的帖子

使用Windows Phone 8 NFC读取Mifare标签?

Windows Phone 8 NFC是否支持基于Mifare Ultralight/Classic的标签?我使用此代码访问诺基亚Lumia 920上的NFC设备(代码示例取自NDEF标签阅读器 - NFC NDEF标签阅读器)

public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
        ProximityDevice device = ProximityDevice.GetDefault();
        device.DeviceArrived += DeviceArrived;
        device.DeviceDeparted += DeviceDeparted;
        device.SubscribeForMessage("NDEF", MessageReceived);
    }

    private void DeviceArrived(ProximityDevice sender)
    {
        // this event occurs when I am tapping any of my tags (tried 5 different Mifare Ultralight/Classic)
    }

    private void DeviceDeparted(ProximityDevice sender)
    {
        // this event occurs when I am moving away any tag
    }

    private void MessageReceived(ProximityDevice sender, ProximityMessage …
Run Code Online (Sandbox Code Playgroud)

.net c# nfc mifare windows-phone-8

15
推荐指数
2
解决办法
2万
查看次数

Visual Studio将打包成WP8 XAP不必要的XML doc文件

如果在Visual Studio中创建Windows Phone 8应用程序并使用nuget或手动提供的XML文档文件引用任何lib,则Visual Studio也会自动将这些XML文件打包到输出XAP中.

在我们的例子中,Visual Studio的这种奇怪行为几乎使XAP大小增加了两倍.(我们总共有8Mb的xml文档.)

WP7应用程序项目没有这样的问题.

如何通过强制Visual Studio不包装不必要的文档文件来减小xap文件的大小?

更新14/02/2013:

重现问题的步骤:

  1. 使用Visual Studio创建Windows Phone 8 App项目
  2. 使用NuGet包管理器参考"Reactive Extensions - Main Library"
  3. 构建解决方案
  4. 转到Bin文件夹并解压缩XAP存档

您会发现许多不必要的XML文档文件,如"System.Reactive.Core.xml"

我认为这是安全问题,因为如果您为项目(或解决方案中的其他项目)启用XML文档生成,那些XML文档也将打包到XAP中 - 当任何人都可以阅读您的代码注释时,这是非常不受欢迎的.

.net xap visual-studio visual-studio-2012 windows-phone-8

8
推荐指数
1
解决办法
1078
查看次数

我们是否总是需要使用async关键字?

我们考虑一下这段代码:

public async Task TheBestMethodEver1()
{
// code skipped
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
  // code skipped
});
Run Code Online (Sandbox Code Playgroud)

}

public Task TheBestMethodEver2()
{
  // code skipped
  return Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
  {
    // code skipped
  }).AsTask();
}
Run Code Online (Sandbox Code Playgroud)

任何这些方法都可以像:

await TheBestMethodEverX();
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别,为什么我通常应该使用第一种方法呢?

.net asynchronous async-await

7
推荐指数
1
解决办法
206
查看次数