从已引用但从未访问过的程序集动态创建类型的实例

时间:2017-08-14 19:35:52

标签: c# dynamic .net-core .net-assembly

使用.net核心控制台应用

我的程序集runner.exe引用了functions.dll。在functions.dll内,有一个名为Functions.MyLibary

的班级

runner.exe我要创建Functions.MyLibary的实例(使用限定字符串名称)

我已经尝试How to dynamically load assemblies in dotnet core了。不幸的是,只有当程序集functions.dll 引用时才有效。

Assembly.GetEntryAssembly().GetReferencedAssemblies()也不包含有关functions.dll的信息。 (如果我不使用functions.dll中的任何课程)

有任何线索如何解决问题?

在runner.exe中

static void Main(string[] args)
{

    // functions.dll is not there.. unless the next line gets uncommented
    var assemblies = Assembly.GetEntryAssembly().GetReferencedAssemblies();  

    //var dummy = new Functions.MyLibrary(); 

    // This only works is the assembly is not referenced. 
    var a  = System.Runtime.Loader.AssemblyLoadContext
                .Default.LoadFromAssemblyPath(@"PATH\functions.dll");
}

在functions.dll

public class MyLibrary
{
    public void Foo()
    {

    }
}

0 个答案:

没有答案