ResolutionGroupName和多个效果

tes*_*ing 5 effects xamarin xamarin.forms .net-attributes

我创建了一个名为Effects的文件夹,其中应包含项目的所有效果。归因于以下因素,它具有一种作用:

[assembly: ResolutionGroupName("Effects")]
[assembly: ExportEffect(typeof(SomeProject.iOS.Effects.SliderEffect), "SliderEffect")]
Run Code Online (Sandbox Code Playgroud)

现在,我想添加另一个具有相同效果的效果(作为单独的文件)ResolutionGroupName,但是我得到了

重复的“ ResolutionGroupName”属性

我的理解

请注意,每个项目只能应用一次此属性。

标识组名称(通常是公司名称或反向的公司URL)的属性,该名称提供了效果名称的范围。

,但是如何在单独的文件中使用多种效果?我发现的所有示例仅使用一种效果...

Dil*_*mah 8

请注意,每个项目只能应用一次此属性。

是的,这是正确的,您只能使用一次,对于其余效果,您不必声明ResolutionGroupName。系统将根据唯一效果名称解析效果。

下面的示例代码应给出清晰的思路。

下面的代码将DummyApp作为组名,不能为不同的效果而更改,而ImageEffects应该是唯一的才能执行。

[assembly: ResolutionGroupName("DummyApp")]
[assembly: ExportEffect(typeof(ImageEffects), "ImageEffects")]
namespace DummyApp.Droid.Effects
{
    public class ImageEffects : PlatformEffect
    {
Run Code Online (Sandbox Code Playgroud)

现在,对于第二个效果,您只需声明并注册导出效果属性即可。

[assembly: ExportEffect(typeof(FocusEffect), "FocusEffect")]
namespace GrowerApp.Droid.Effects
{
    public class FocusEffect : PlatformEffect
    {
Run Code Online (Sandbox Code Playgroud)

现在,表单声明示例代码将为

public class ImageEffects : RoutingEffect
    {
        public ImageEffects() : base("DummyApp.ImageEffects")
        {

        }
    }

    public class FocusEffect : RoutingEffect
    {
        public FocusEffect() : base("DummyApp.FocusEffect")
        {

        }
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!