2017-09-15 43 views
4
C#VS2017 IStringable未引用異常

所以我要跳直。我使用Windows.Data.Json轉換和從Web服務使用一些JSON使用Windows.Data.Json

。我知道關於Newtonsoft.Json.Net,以及其他一些等等,是的,我特別試圖使用Windows.Data.Json,出於公司和依賴的原因。

該應用程序有3個主要部分/組件。

  • 一個UWP勝利10應用程序 - 主要應用
  • 的MVC的Web項目 - 共享類都

這個問題我之間 - 對於應用

  • 一個可移植類庫Web服務有是,當我在任的MVC Web項目或PCL使用JsonObject,我得到的錯誤:

    The type 'IStringable' is defined in an assembly that is not referenced. You must add a reference to assembly 'Windows.Foundation.FoundationContract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.

    這個錯誤在我使用JsonObject的地方出現,但是,不在UWP應用程序項目中。

    例如

    //Convert string to json object 
    var apiJsonObj = JsonObject.Parse(jsonString); 
    

    cc.Type = apiJsonObj["TYPE"].ToString(); 
    

    我在網上搜索,並不能找到有關Windows.Data.Json有用的東西,也不是IStringable,除了這一點: https://docs.microsoft.com/en-us/uwp/api/windows.foundation.istringable

    我的項目沒有Windows。添加引用對話框中列出的Foundation.FoundationContract,我無法在我正在使用的UWP應用程序中找到對它的任何引用,也沒有任何其他已被使用的信息。

    UWP應用程序和MVC Web應用程序使用字面上相同的代碼行來解釋JsonObject。 UWP應用程序工作。 MVC Web應用程序給出了上述錯誤。

    我想知道是否有其他人已成功使用Windows.Data.Json,並且可能遇到過這個問題,並修復?

    的應用程序必須是儘可能小和獨立越好,因此少數的引用,而不是能夠使用Json.Net等

  • +0

    我也看到過這樣的帖子:https://github.com/Microsoft/Win2D/issues/299,但其實並沒有包含任何真正的信息,只能解決VS17中的問題。 (Dev15)我正在使用VS2017 v15.2。 – Del

    回答

    1

    This error is showing up everywhere I use the JsonObject, however, NOT in the UWP app project.

    Windows.Foundation.FoundationContract組件platform specific。您無法在便攜式圖書館中使用它。它會拋出編譯錯誤,但您可以通過選擇winmd文件在以下文件夾中添加引用。

    C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\2.0.0.0\Windows.Foundation.FoundationContract.winmd 
    

    目前,Json.NET已支持的便攜圖書館,你可以用它來解析JSON。你可以選擇Json.NET這不會導致複雜的程序集依賴關係。

    +0

    嘿,所以這並沒有完全解決我的問題,但它回答了我的問題。所以我會標記爲答案。 – Del