Skip to content

Cryptic TypeLoadException if actor proxy interface is non-public #859

Open
@cgillum

Description

@cgillum

Consider the following code snippet:

    ActorId actorId = new("123");
    IMyActor proxy = ActorProxy.Create<IMyActor>(actorId, nameof(MyActor));

    // The Init method invokes the actor directly, which then decides whether to apply de-dupe logic.
    await proxy.MyMethod();

Also, assume IMyActor is an internal interface (non-public).

Expected Behavior

Internal interfaces should be supported, OR there should be a friendly exception explaining why my interface is invalid.

Actual Behavior

If IMyActor is internal, I get the following cryptic exception:

System.TypeLoadException: Type 'MyNamespace.IMyActor_.actorV1.proxyIMyActoractorV1Proxy' from assembly 'MyNamespace.IMyActor_.actorV1.proxy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is attempting to implement an inaccessible interface.

It's not at all clear what needs to be done to fix this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions