gpt4 book ai didi

c# - Xamarin 依赖服务问题

转载 作者:太空狗 更新时间:2023-10-29 18:08:14 25 4
gpt4 key购买 nike

在 Xamarin Forms 中,我有这样的解决方案:

Solution
|- Libraries
| |- IInterface.cs
| |- Etc.
|
|- Libraries.iOS
| |- Interface.cs
| |- Etc.
|
|- Forms.App
| |- App.cs
| |- Etc.
|
|- Forms.App.iOS
| |- Etc.
  • Forms.App.iOS 引用 Libraries.iOS
  • Forms.App 引用库
  • Libraries.iOS 引用库
  • Forms.App.iOS 引用 Forms.App

接口(interface).cs

namespace a
{
public interface IInterface
{
void Function ();
}
}

接口(interface).cs

[assembly: Xamarin.Forms.Dependency(typeof(a.Interface))]
namespace a
{
public class Interface : IInterface
{
public void Function ()
{
return;
}
}
}

应用.cs

namespace a
{
public class App
{
public static Page GetMainPage ()
{
var inter = DependencyService.Get<IInterface> (); // This is always null.
return new ContentPage {
Content = new Label {
Text = "Hello, Forms!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
},
};
}
}
}

如何让依赖服务找到我的接口(interface)实现?我需要将它们放在一个单独的项目中,因为我需要在不同的项目中使用相同的实现。

最佳答案

我有

[程序集:依赖(typeof(TestService.IMyService))]

,我应该有的地方

[程序集:依赖(typeof(TestService.iOS.MyService))]

所以在您的平台特定代码中始终采用实现而不是接口(interface)!否则你会得到

System.MissingMethodException: Default constructor not found for [Interface]

关于c# - Xamarin 依赖服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27173040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com