gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:07:27 25 4
gpt4 key购买 nike

1)我有一个名为SocketServer的项目,其中有一个类Room,这个项目是一个编译好的exe,也可以编译成一个DLL。

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

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

现在 MyGame 项目被编译成一个 MyGame.DLL,并放置在相对于 SocketServer.exe 的某个位置,SocketServer.exe 在运行时加载 MyGame.DLL 并实例化 MyAwesomeGame 类并调用方法 Init 并将空间作为其参数传递。代码是 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 项目中获取类 room 的引用?我应该添加对我的 SocketServer 项目的引用吗?如果我这样做,它不会被编译到我的 MyGame.dll 中吗?

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

最佳答案

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

我认为确保 SocketServer 是 MyGame 项目的依赖项以确保 SocketServer 在 MyGame 之前构建也是明智的。

--编辑:请阅读下面我在 Sushant 澄清后发表的评论。或者直接转到 Sid 的答案。 :-)

关于c# - 在两个 c# 程序集之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40885818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com