Frage

Hat System.Data in Mono erweitert um zusätzliche Funktionalität enthalten? Ich bin versucht, die Verwendung des SQL Parser geschrieben für Mono in Mono.Data.SqlExpressions zu machen, aber wenn alle Klassen im SqlExpressions Namespace aufgenommen worden versagt das Projekt noch zu kompilieren, weil die Klassen in System.Data nicht übereinstimmen. < br> Beispiel System.Data.DataColumn wird nicht definiert, das Property Ereignis. Will ich die Mono System.Data Bibliotheken stattdessen verwenden müssen? Wenn die Mono Datacolumn-Klasse im Projekt enthalten ist diese Compilation Fehler treten nicht auf (es verweist Klassen wie Datacategory, die in .NET Framework nicht gefunden werden).

Alternativ kann jede Hilfe, wie Port an den SQL-Parser in Mono auf Microsoft .NET Framework würde geschätzt. Ich habe versucht, die Quelle zum Herunterladen und die fehlenden Bibliotheken in das Projekt ein, aber dieser Ansatz fehlerhaft erscheint. Die Anzahl der fehlenden Abhängigkeiten scheint die Lösung des Problems, anstatt zu erhöhen.

War es hilfreich?

Lösung

Mono versucht binäre und API mit MS-Implementierung kompatibel zu sein. Das bedeutet, dass mit Ausnahme einiger internen Support-Methoden und Klassen, alle von Mono ausgesetzt APIs sollte 101 mit MS .Net entsprechen. Dies ist Komplikation wie Menschen zu vermeiden, unter der Annahme, ein Verfahren existiert, weil es in Mono kompiliert und dann funktioniert es nicht auf MS.Net nachdem alle.

Wenn neuer Code und Funktionen von Mono implementiert werden sie sogar als in der Regel in einer separaten Assembly und Projekt eingebunden sind. Mono.Data wie der Name schon sagt, eine solche „Erweiterung“, so dass es sinnvoll ist, müssen Sie alle abhängigen Baugruppen umfassen können, um es zu bauen. Wenn Mono.Data.dll und seine deps auf MS.Net oder nicht seine Angelegenheit laufen oder die Dokumentation überprüft und testet es.

Was Sie betrifft zweite Frage kann ich Ihnen nicht sagen, Besonderheiten, aber es sei denn, der Code bestimmte intructions hat unter Windows ausgeführt werden wird es wahrscheinlich eine Menge Arbeit in den Hafen verlangen. Wie bei jedem API Code viel wird auf die öffentlichen Schnittstellen und interne Merkmale der Umsetzung nicht ausgesetzt Notwendigkeit herum gearbeitet werden, wenn Sie den Code zu portieren. Ich würde vorschlagen, dass Sie irgendwann nehmen zu analysieren, wie der Code funktioniert, und dann versuchen, es auf MS.Net laufen zu lassen um so viel deps auf Mono-Code zu entfernen, wie es Sinn macht. Am Ende, wenn der Code ist kompatibel genug sollten Sie Monos Quelle mit Kompilation intructions Patchen prüfen und #if! MONO pragmas die Mühe zukünftigen Nutzer zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top