为什么我不能把[assembly:Dependency()]放在一个类上面?

Exe*_*xec 7 c# xamarin.forms

我正在尝试使用这个答案在Xamarin中实现一些特定于平台的代码,但是我遇到了将特定于平台的类设置为依赖关系的问题.我得到以下编译器错误,assembly标记了标记的单词:

除了使用子句和外部别名声明之外,程序集和模块属性必须位于文件中定义的所有其他元素之前.

我有以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Security.Permissions;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using ZXing.Net.Mobile.Forms;
using Xamarin.Forms;

namespace MyApp_Xamarin.Droid {
[assembly: Dependency(typeof(View.ActualPage.BarcodeScannerTest))]
public class BarcodeScannerTestClass : View.ActualPage.BarcodeScannerTest
{
    public async void Start(INavigation nav, Page page)
    {
        var scanPage = new ZXingScannerPage();

        scanPage.OnScanResult += (result) =>
        {
            // Stop scanning
            scanPage.IsScanning = false;

            // Pop the page and show the result
            Device.BeginInvokeOnMainThread(() =>
            {
                nav.PopAsync();
                page.DisplayAlert("Scanned Barcode", result.Text, "OK");
            });
        };

        // Navigate to our scanner page
        await nav.PushAsync(scanPage);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Mik*_*ray 12

正如错误所述,必须在文件中的大多数其他程序元素之前声明程序集属性.名称空间声明(namespace MyApp_Xamarin.Droid)是这些元素之一.您必须在此之前移动该属性:

[assembly: Dependency(typeof(View.ActualPage.BarcodeScannerTest))]

namespace MyApp_Xamarin.Droid 
{
    public class BarcodeScannerTestClass : View.ActualPage.BarcodeScannerTest
Run Code Online (Sandbox Code Playgroud)