加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在两个c#程序集之间共享代码

发布时间:2020-12-15 23:36:21 所属栏目:百科 来源:网络整理
导读:1)我有一个名为SocketServer的项目,其中有一个Class Room,这个项目是一个编译的exe,也可以编译为DLL. 2)在另一个名为MyGame的项目中,有一个名为MyAwesomeGame的类,我需要在其中执行以下操作: public class MyAwesomeGame{ public Init(Room room) { //I can
1)我有一个名为SocketServer的项目,其中有一个Class Room,这个项目是一个编译的exe,也可以编译为DLL.

2)在另一个名为MyGame的项目中,有一个名为MyAwesomeGame的类,我需要在其中执行以下操作:

public class MyAwesomeGame
{
    public Init(Room room)
    {
        //I can get data from Room
    }
}

现在,MyGame Project被编译成MyGame.DLL,并放置在相对于SocketServer.exe的某个地方,SocketServer.exe在运行时加载MyGame.DLL并实例化MyAwesomeGame类并调用Method Init并将room作为参数传递.代码是SocketServer项目是这样的:

public class Room
{
     private InstantiateGameRoom()
     {
          //Load External MyGame.DLL Assembly 
          Task<MyAwesomeGame> task = Task<MyAwesomeGame>.Factory.StartNew(() => (MyAwesomeGame)Activator.CreateInstance(classType,new object[] { this }));
          MyAwesomeGame instance = task.result;
          instance.init(this);
     }
}

所以我的问题是如何在MyGame项目中获得课堂的参考?我应该添加我的SocketServer项目的引用吗?如果我这样做,它会不会被我的MyGame.dll编译?

p.s:我还打算将socketserver.dll作为API分发给第三方用户.

解决方法

您应该将SocketServer生成的dll添加到MyGame项目的引用中.右键单击MyGame,单击Add,单击References …,在对话框中选择Projects并选择SocketServer项目.

我相信确保SocketServer是MyGame项目的依赖性以确保在MyGame之前构建SocketServer也是明智之举.

– 编辑:请阅读我在Sushant澄清之后做出的评论.或直接去Sid的回答.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读