欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

记录由程序集引起的错误:依赖关系。

最编程 2024-04-09 07:14:00
...

一个xamarin.forms工程需要一个Toast来提示信息,大家知道forms没有内置这个简单的控件,不可思议。要自己引入不同平台的实现。于是,偷懒用向导创建了一个c#类。结果用 [assembly: Dependency(typeof(Toast_Android))] 引入实现的时候居然提示: “错误CS7036 未提供与“DependencyAttribute.DependencyAttribute(string, LoadHint)”的必需形参“loadHintArgument”对应的实参” 。搞了半天摸不着头脑。突然想起来以前有添加过这种代码,成功了,没出错误啊。 于是翻出老代码。也是对比了半天。头都钻到屏幕里面去了,还是没看出啥区别。撸了一把冷静了一下,突然看出区别来了。如下图:

出错的代码

正确的代码

真是蛋疼啊。。刚开始直接忽略了系统生成的using部分,就是蓝色框框的部分。忽然看到using部分不一样,于是把正确的代码块的using部分替换到了出错的代码快中,立马ok! 天知道向导自动using引入的头文件是怎么污染了 assembly: Dependency . .!

using System;
using Xamarin.Forms;
using AdminTools.Services;
using WorkingWithWebview.Android;
using Android.Widget;

using Plugs.Droid;

[assembly: Dependency(typeof(Toast_Android))]
//[assembly: Dependency(typeof (Toast_Android),LoadHint.Default)]

namespace Plugs.Droid
{
    class Toast_Android : IToast
    {
        public void LongAlert(string message)
        {
            Toast.MakeText(Android.App.Application.Context, message, ToastLength.Long).Show();
        }
        public void ShortAlert(string message)
        {
            Toast.MakeText(Android.App.Application.Context, message, ToastLength.Short).Show();
        }
    }
}

推荐阅读