在UiPath中扩展类型

问题描述

我有一个c#类,其扩展类型如下:

public static class TypeExtensions
{
    public static String nameof<TType,TMember>(this TType obj,Expression<Func<TType,TMember>> propertyAccessor)
    {
        if (propertyAccessor.Body.NodeType == ExpressionType.MemberAccess)
        {
            var memberExpression = propertyAccessor.Body as MemberExpression;
            if (memberExpression == null)
                return null;
            return memberExpression.Member.Name;
        }
        return null;
    }
}

在C#中,我通常会访问如下方法

obj.nameof(o => o.PropertyXY)

但是,在UiPath Studio中,我无法对其进行扩展。这是我尝试过的

obj.[nameof](Function(o) o.PropertyXY)

我已确保正确导入命名空间。

我做错什么了吗,或者在UiPath中扩展类型有任何已知的限制吗?

先谢谢了。 艾伦

编辑 在正确清理了VisualStudio库项目(通过删除bin / obj文件夹)并重建之后,我现在至少能够看到Intellisense中列出的扩展方法。 但是,在调用它时,UiPath会抱怨:“由于对象的当前状态,该操作无效”

解决方法

@Alan-在UiPath中,访问自定义类和对象的唯一方法是通过nuget包。我自己还没有尝试过,但是从理论上讲,它应该按照以下步骤工作:

  1. 创建一个类库项目,然后创建该项目的nuget包
  2. 通过在UiPath中管理包来将nuget包导入到您的项目中
  3. 在xaml页面中导入包的名称空间
  4. 这应该使您的静态方法可用于您的活动

请尝试一下,让我知道如何进行。

另一种选择是使用Visual Studio创建自定义活动,但我认为这对于这样一个琐碎的问题可能是过大的了