首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当在不同dll的接口上调用具有ImmutableArray<>的方法时,将引发ImmutableArray<>。

当在不同dll的接口上调用具有ImmutableArray<>的方法时,将引发ImmutableArray<>。
EN

Stack Overflow用户
提问于 2016-03-22 22:33:54
回答 1查看 1.2K关注 0票数 3

问题

我在两个各自的dll中有下面的代码。dll1依赖于dll2。

DoWork()被调用时,它将很好地执行myInterface.MyListMethod(ImmutableList<byte>.Empty);。当它执行myInterface.MyArrayMethod(ImmutableArray<byte>.Empty);时,将引发以下异常:

Exception:System.MissingMethodException: Method not found: Namespace.MyArrayMethod(System.Collections.Immutable.ImmutableArray'1<Byte>)

dll1.dll

代码语言:javascript
复制
public class TestClass
{
    public void DoWork()
    {
        IMyInterface myInterface = new MyInterface();
        myInterface.MyListMethod(ImmutableList<byte>.Empty);
        myInterface.MyArrayMethod(ImmutableArray<byte>.Empty);          
    }
}

dll2.dll

代码语言:javascript
复制
public class MyInterface : IMyInterface
{
    public void MyArrayMethod(ImmutableArray<byte> byteArray)
    {
        // Do stuff
    }

    public void MyListMethod(ImmutableList<byte> byteList)
    {
        // Do stuff
    }
}
public interface IMyInterface
{
    void MyArrayMethod(ImmutableArray<byte> byteArray);
    void MyListMethod(ImmutableList<byte> byteList);
}

测试

从我的观点来看,ImmutableArray<>似乎是错误的,因为我已经尝试过多个类型,包括上面看到的,以及不可变命名空间中的其他类型。据我所知,只有在ImmutableArray<>中才会发生这种情况。

我还确保了这两个dll都是当前的dll,并且在gac上没有一些旧的缓存版本。更新接口,使之具有另一个方法,然后在MyArrayMethod按预期工作之前调用它。

Visual特别不会调用包含ImmutableArray<> param的接口上的方法的引用,但是对于带有ImmutableList<>的方法,它会这样做。如果从方法中移除ImmutableArray<>参数,它还将获取引用。

但是,该解决方案构建良好,只有在运行时尝试JIT时才会引发此错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 05:57:59

如果我向“System.Runtime”添加一个项目引用,那么一切都可以正常工作。就这样。

当我试图复制时,我最终解决了这个问题--有一个文化问题,VS通过自动添加了一个项目引用到System.Runtime来解决。这最终解决了更大的问题。VS中的引用现在运行良好,代码运行时没有任何问题。

当我传递null时,它将在没有System.Runtime的情况下进行构建,但是当我调用该方法时,它将抛出异常。但是,当尝试传递默认的ImmutableArray时,它要求我添加System.Runtime。这解决了这个问题。

我不知道为什么这解决了我的问题,但它确实解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36166516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档