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) 如果在Visual Studio中创建Windows Phone 8应用程序并使用nuget或手动提供的XML文档文件引用任何lib,则Visual Studio也会自动将这些XML文件打包到输出XAP中.
在我们的例子中,Visual Studio的这种奇怪行为几乎使XAP大小增加了两倍.(我们总共有8Mb的xml文档.)
WP7应用程序项目没有这样的问题.
如何通过强制Visual Studio不包装不必要的文档文件来减小xap文件的大小?
更新14/02/2013:
重现问题的步骤:
您会发现许多不必要的XML文档文件,如"System.Reactive.Core.xml"
我认为这是安全问题,因为如果您为项目(或解决方案中的其他项目)启用XML文档生成,那些XML文档也将打包到XAP中 - 当任何人都可以阅读您的代码注释时,这是非常不受欢迎的.
我们考虑一下这段代码:
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)
这两种方法有什么区别,为什么我通常应该使用第一种方法呢?