Ich baue ein Projekt, das eine MVC Web Api enthält, die in Azure und einer iOS App gehostet wird. Ich versuche Xamarin zu verwenden, um die App zu erstellen. Nach meinem Verständnis sollte ich in meinem Xamarin-Projekt eine portable Klassenbibliothek verwenden, um den Code zwischen meinem Web-API-Projekt und der Xamarin-App sowie zukünftige Apps auf anderen Plattformen wie Android zu teilen.Xamarin portable library - Wie teile ich Klassen?
Also von Anfang an würde ich meine Modelle in die tragbare Bibliothek legen wollen. Die App und die Web-API geben diese Modelle hin und her. Die tragbare Bibliothek verfügt jedoch nicht über die Azure Table Storage-Bibliothek. Es hat nicht einmal ein paar grundlegende Dinge. Meine Modelle müssen auf die Azure-Speicherbibliothek verweisen, damit ich Instanzen im Speicher speichern kann.
Was ist der beste Weg, um diesen Code gemeinsam nutzbar zu machen? Natürlich muss ich meine Modellklassen duplizieren, damit sie an jedem Ort existieren können. Aber sollten diejenigen in der PCL von denen im Web-API-Projekt erben? Und umgekehrt? Sollte es eine Schnittstelle geben, von der beide erben (tatsächlich erfordert die Azure Table Storage-Bibliothek, dass die Klassen bereits von ITableEntity erben ...). Ich suche nur nach dem besten Weg, diese Klassen zwischen dem Web-API-Projekt und dem PCL des Xamarin-Projekts zu teilen.
Dank Jon! Das musste ich wissen. Ich lege POCOs in den PCL und erben von ihnen im Web-API-Projekt. –
Jon, ein kleiner Haken - meine Klassen im Web-API-Projekt müssen von Microsoft.WindowsAzure.Storage.Table.TableEntity erben. Das heißt, sie können auch nicht von meinen POCOs in der PCL erben. Was ist der beste Ansatz in einer solchen Situation? Würden Sie eine Reihe von intermediären Klassen erstellen, die von den POCOs erben, und dann Ihre Web-API-Klassen von diesen intermediären Klassen ableiten? Das scheint chaotisch, aber ich habe keine besseren Ideen ... –
Sieht aus wie die Antwort von @MikeWo hier http://stackoverflow.com/questions/33912186/using-pocos-when-persisting-to-azure-table -Storage hat einige gute Optionen in den Links von Rory Primrose, obwohl sie ein bisschen über meine derzeitige Fähigkeitsstufe hinausgehen können. Scheint so, als ob Sie von POCOs erben und ITableEntity implementieren können und damit durchkommen, obwohl es nicht ideal ist. –