我想创建一个控制台应用程序并将其添加到另一个类库项目中。所以我的类库将是可运行的应用程序。
namespace MyWorker.Host
{
class Program
{
static void Main(string[] args)
{
}
}
public interface IConfiguration
{
void Configure();
}
}
我正在添加MyWorker.Host
作为MyWorker.Client
类库项目的参考。并将调试设置设置为“启动外部程序”。
现在我想搜索引用 MyWorker.Host 的客户端程序集。我会找到实现IConfiguration
接口的类。
namespace MyWorker.Host
{
class Program
{
static void Main(string[] args)
{
var implementations = AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(assemly => assemly.GetTypes())
.Where(t => !t.IsInterface)
.Where(t => typeof (IConfiguration).IsAssignableFrom(t));
foreach (var assembly in implementations)
{
Console.WriteLine(assembly.FullName);
}
Console.Read();
}
}
}
但是控制台写没有。
(如果我在MyWorker.Host中添加一个concrate类,它会编写控制台。)
答案 0 :(得分:0)
之前我做过类似的事情,但是必须通过DLL查看实现您使用Reflection之后的接口的类。当然,您需要一种传递该路径的方法,该路径可以是可配置的,或者只是查看解决方案目录中的所有子目录等。