小编Lea*_*hio的帖子

Activator.CreateInstance(Type)as Interface返回null

我把它作为我的dll的主要类:

namespace PTEmu
{

    public class DatabaseProtocol : IDatabaseProtocol
    {
      (constructors and methods)
    }
 }
Run Code Online (Sandbox Code Playgroud)

我用这个代码加载DLL并创建类的实例

var assembly = Assembly.LoadFrom("database\\" + file);
var t = assembly.GetType("PTEmu.DatabaseProtocol");
var protocol = Activator.CreateInstance(t) as IDatabaseProtocol;
Run Code Online (Sandbox Code Playgroud)

Assembly.LoadFrom, assembly.GetTypeActivator.CreateInstance它本身,不会抛出任何错误.

我看不出有什么问题,我从另一个可以正常使用它的项目中获取了这段代码.

如果我删除as IDatabaseProtocol它,它返回一个对象,但不是像我想要的接口那样的对象,所以我可以轻松调用这些方法...

c# reflection

1
推荐指数
1
解决办法
4401
查看次数

在高山码头工人中找不到 dotnet

我有以下 dockerfile:

FROM jenkins/jenkins:lts-alpine

USER root

RUN apk update
RUN apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib wget
RUN apk add libgdiplus --repository https://dl-3.alpinelinux.org/alpine/edge/testing/

USER jenkins

RUN wget https://dot.net/v1/dotnet-install.sh -O $HOME/dotnet-install.sh
RUN chmod +x $HOME/dotnet-install.sh
RUN $HOME/dotnet-install.sh -c 5.0

RUN dotnet --info

EXPOSE 2376 23676
Run Code Online (Sandbox Code Playgroud)

但是当我运行 docker-compose 时,它​​给了我:

Building jenkins
failed to get console mode for stdout: Invalid identifier.
[+] Building 64.6s (10/11)
[+] Building 64.7s (11/11) FINISHED
 => [internal] load build definition from jenkins.dockerfile               0.0s
 => …
Run Code Online (Sandbox Code Playgroud)

jenkins docker .net-core dockerfile docker-compose

0
推荐指数
1
解决办法
5597
查看次数