Ich habe ein Xamarin.iOS-Projekt, das die Splat-Bibliothek https://github.com/paulcbetts/splat verwendet, um System.Drawing-Typen in der tragbaren Klassenbibliothek verfügbar zu machen. Wenn eine Elternklasse (etwa) System.Drawing.RectangleF verwendet, dann funktioniert es mit Splat gut, diese Klasse in Xamarin.IOS-Code zu unterklassifizieren. Das gleiche gilt jedoch nicht für Xamarin.Mac, jedenfalls nicht so, wie ich es mache. Verschiedene Typen widersprechen sich selbst - mindestens Punkt und Rechteck.Typ Auflösung mit Splat-Bibliothek und Xamarin.Mac
Ich weiß nicht, ob dies zu Xamarins jüngsten Updates (zu Xamarin 6) oder nicht verwandt ist.
Ein Beispielcode ist unten und ich mache ein vollständiges Projekt, das das auf Github verfügbare Problem demonstriert. https://github.com/verybadcat/splat - Macbug Zweig.
Es ähnelt dem hier beschriebenen Problem [Splat [0.3.4] on Xamarin.iOS: issues with RectangleF and PointF.
Portable Klassenbibliothek Projekt:
using System.Drawing;
namespace PCL
{
public class RectOwner
{
public RectangleF Rect { get; set;}
}
}
Projekt IOS - das funktioniert gut:
using PCL;
namespace IOSApp
{
public class RectOwnerIOS: RectOwner
{
public RectOwnerIOS()
{
this.Rect = new System.Drawing.RectangleF (10, 20, 30, 40);
}
}
}
Mac Projekt - nicht bauen:
using PCL;
namespace MacApp
{
public class RectOwnerSubclass: RectOwner
{
public RectOwnerSubclass()
{
this.Rect = new System.Drawing.RectangleF (5, 6, 7, 8); // errors here:
// /Users/william/Documents/splat/MacApp/RectOwnerMac.cs(16,16): Error CS7069: Reference to type `System.Drawing.RectangleF' claims it is defined assembly `Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null', but it could not be found (CS7069) (MacApp)
// /Users/william/Documents/splat/MacApp/RectOwnerMac.cs(23,23): Error CS0029: Cannot implicitly convert type `System.Drawing.RectangleF [Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065]' to `System.Drawing.RectangleF [Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null]' (CS0029) (MacApp)
}
}
}
Wie kann ich Holen Sie sich das Mac-Projekt zu bauen?
ich herabgestuft Xamarin Studio 5.10 und die entsprechende Xamarin.Mac-Version. Ich sehe immer noch das Scheitern. –