我有一个 .NET Core 控制台应用程序,该应用程序实例化了具有某些公共属性的一些公共类。它运行一个循环,在某些条件下会修改这些公共属性。在应用程序的整个生命周期中,这些属性每秒都会更新几次。
现在,我希望具有用户界面的另一个应用程序可以显示来自控制台应用程序的数据。我如何从一个应用程序中获取数据存在于另一个应用程序的公共属性中?
答案 0 :(得分:0)
要在各个流程之间进行交流,您只能使用一些实用的选项(您似乎不想做的事情):
答案 1 :(得分:-1)
我用System.Runtime.Loader.AssemblyLoadContext
解决了这个问题。
我在运行时将程序集加载到应用程序中,然后实例化其类并从实例中读取公共属性。
class Program
{
static void Main(string[] args)
{
var fileName = @"C:\temp\foo.dll";
var assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(fileName);
var type = assembly.GetType("MyApplication.Car");
dynamic carInstance = Activator.CreateInstance(type);
Console.WriteLine(carInstance.Color);
}
}
解决此问题的另一种方法是通过导入项目作为项目参考。这样,我就可以从强大的输入中受益。