我把它作为我的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.GetType和Activator.CreateInstance它本身,不会抛出任何错误.
我看不出有什么问题,我从另一个可以正常使用它的项目中获取了这段代码.
如果我删除as IDatabaseProtocol它,它返回一个对象,但不是像我想要的接口那样的对象,所以我可以轻松调用这些方法...
我有以下 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)