C# 使用WPF';单声道上的s点和颜色类

C# 使用WPF';单声道上的s点和颜色类,c#,.net,wpf,mono,C#,.net,Wpf,Mono,我正在开发一个具有客户端和服务器的应用程序。每个都通过一个共享类库共享相似的代码。类库和服务器都依赖于WPF(在PresentationCore.dll中)和(在WindowsBase.dll中)类。(但仅依赖这两个WPF类) 服务器和客户机库在Linux上使用Mono运行正常,直到执行使用Color或Point类的代码,因为WPF没有移植到Mono System.IO.FileNotFoundException:无法加载文件或程序集“PresentationCore,Version=4.0.0

我正在开发一个具有客户端和服务器的应用程序。每个都通过一个共享类库共享相似的代码。类库和服务器都依赖于WPF(在PresentationCore.dll中)和(在WindowsBase.dll中)类。(但仅依赖这两个WPF类)

服务器和客户机库在Linux上使用Mono运行正常,直到执行使用
Color
Point
类的代码,因为WPF没有移植到Mono

System.IO.FileNotFoundException:无法加载文件或程序集“PresentationCore,Version=4.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一

我通过从本地机器添加我自己的
PresentationCore.dll
解决了这个问题(希望能像处理应用程序一样对代码进行mono“转置”),从而解决了这个问题,直到需要使用color类。(但是,point类现在可以正常工作)

使用“颜色”类会导致:

System.InvalidProgrameException:System.Windows.Media中的IL代码无效。颜色:Fr omRgb(字节,字节,字节):方法体为空

我尝试过使用
extern alias
并实现color类的Mono-Moon版本,发现了。在服务器上使用this,在客户端上使用PresentationCore的版本,以及每个版本的不同别名,在某种程度上是可行的。它在服务器端工作正常,但当客户端需要使用包含
颜色的对象时,WPF无法将类的Mono版本强制转换为WPF版本。(我可以自动强制转换,但我会处于相反的情况,客户端工作,而不是服务器)

不管怎样,这就是我到目前为止发现的研究。我的一个想法是尝试编译它并将其添加到Mono GAC或我的程序目录中,尽管我不知道如何编译它(特别是制作“configure”),以及它是否可以工作


在我的情况下,有没有办法在Mono上使用WPF
Color
类?(不需要WPF框架的其余部分)
请记住,包含使用颜色类的对象的共享库在客户端和服务器之间共享。

可能会对您有所帮助。您不能只包含自己的
Color
Point
类有什么原因吗?在我看来,依赖服务器应用程序中的WPF是不对的,当它只适用于两种简单类型时更是如此。@AlexanderKöplinger服务器和客户端都使用一个共享库,该库具有共同的对象,例如用户、不同的实体和消息。实际上,我通过使用
#if monocolor=MyCustomColorClass解决了这个问题