Tôi có một dự án Xamarin.iOS sử dụng thư viện splat https://github.com/paulcbetts/splat để tạo các loại System.Drawing có sẵn trong thư viện lớp di động. Nếu một lớp cha sử dụng (nói) System.Drawing.RectangleF, sau đó bằng cách sử dụng Splat, nó hoạt động tốt để phân lớp lớp này trong mã Xamarin.IOS. Tuy nhiên, điều này cũng không đúng với Xamarin.Mac, ít nhất không phải là cách tôi làm. Các loại xung đột với chính chúng - tại một điểm tối thiểu và RectangleF.độ phân giải loại với thư viện Splat và Xamarin.Mac
Tôi không biết điều này có liên quan đến các cập nhật gần đây của Xamarin (với Xamarin 6) hay không.
Một số mã mẫu bên dưới và tôi đang tạo một dự án đầy đủ minh họa sự cố có sẵn trên Github. https://github.com/verybadcat/splat - chi nhánh macbug.
Dường như vấn đề được mô tả ở đây [Splat [0.3.4] on Xamarin.iOS: issues with RectangleF and PointF.
xách tay Class Library dự án:
using System.Drawing;
namespace PCL
{
public class RectOwner
{
public RectangleF Rect { get; set;}
}
}
dự án IOS - điều này chỉ hoạt động tốt:
using PCL;
namespace IOSApp
{
public class RectOwnerIOS: RectOwner
{
public RectOwnerIOS()
{
this.Rect = new System.Drawing.RectangleF (10, 20, 30, 40);
}
}
}
dự án Mac - không xây dựng:
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)
}
}
}
Làm thế nào tôi có thể có được dự án Mac để xây dựng?
tôi hạ cấp xuống Xamarin Studio 5.10 và phiên bản Xamarin.Mac tương ứng. Tôi vẫn thấy thất bại. –