ResolutionGroupName 和多种效果

ResolutionGroupName and multiple effects

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

[assembly: ResolutionGroupName("Effects")]
[assembly: ExportEffect(typeof(SomeProject.iOS.Effects.SliderEffect), "SliderEffect")]

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

Duplicate 'ResolutionGroupName' attribute

我明白了that

Note that this attribute can only be applied once per project.

Attribute that identifies a group name, typically a company name or reversed company URL, that provides a scope for effect names.

,但是如何在单独的文件中使用多个效果?我找到的所有例子都只使用了一种效果...

Note that this attribute can only be applied once per project.

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

下面的示例代码应该给出了一个清晰的思路。

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

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

现在对于第二个 Effect,您可以简单地声明并注册导出效果属性。

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

现在表单声明示例代码将是

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

        }
    }

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

        }
    }

希望对您有所帮助!