将程序集作为类库中的资源加载

时间:2016-02-16 11:10:29

标签: c#

我需要在我自己的库中嵌入引用的程序集作为资源。为此,我创建了一个包含3个项目的小样本解决方案。

第一个称为First并且没有依赖关系。第二个名为Second,取决于First。第三个是OutProj,并且引用了Second

我找到了关于PreApplicationStartMethodAttribute的{​​{3}}文章。我添加了

[assembly: PreApplicationStartMethod(typeof(SecondNs.Startup), "Start")]

到我的测试项目的AssemblyInfo类(包含后的第一行)。接下来我已经定义了类和方法:

class Startup
{
    public static void Start()
    {
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(Resolver);
    }

    static System.Reflection.Assembly Resolver(object sender, ResolveEventArgs args)
    {
        var name = args.Name.Substring(0, args.Name.IndexOf(','));
        byte[] block = null;
        switch (name)
        {
            case "First":
                block = Properties.Resources.First;
                break;
            default:
                break;
        }
        Assembly a2 = Assembly.Load(block);
        return a2;
    }
}

SecondOutProj都定义了这个类,但是切换情况有所不同(原始代码没有做到这一点,所以我对其进行了修改)。

我的主要问题是Start方法没有被调用。当我将开始方法代码添加到我的Main方法时,确实会被调用,但我的类库中没有Main。这是正确的方法还是有更好的方法来做到这一点?

0 个答案:

没有答案