顯示具有 WinForm 標籤的文章。 顯示所有文章
顯示具有 WinForm 標籤的文章。 顯示所有文章

2013年3月5日 星期二

無法將 Lambda 運算式 轉換為型別 'string',因為它不是委派型別

From Evernote:

無法將 Lambda 運算式 轉換為型別 'string',因為它不是委派型別

今天遇到了一個奇怪的錯誤



覺的真的很奇怪,怎麼會無法下 db.Object.Include(c => c.Unit);

出現了這個錯誤。

解決的方法是加上
using System.Data.Entity;

加上這行就解決了。

讀取Json檔案到Object

From Evernote:

讀取Json檔案到Object

需要using的Path
using System. IO ;
using System. Xml ;
using System. Xml .Linq ;
using System. Runtime .Serialization . Json;


Test.json:
{"First":true,"AddDrop":false,"Abandon":false}

主要的程式碼:
string path = "../Test.json";
byte [] buffer = System . IO. File .ReadAllBytes (path);
using ( XmlReader reader = JsonReaderWriterFactory .CreateJsonReader ( buffer, XmlDictionaryReaderQuotas . Max))
{
     using ( XmlDictionaryReader xml = XmlDictionaryReader. CreateDictionaryReader ( reader))
     {
          DataContractJsonSerializer serializer = new DataContractJsonSerializer ( typeof( CourseSelectJsonModel ));     //重點在這行
          CourseSelectJsonModel courseSelectJsonModel =  serializer .ReadObject ( xml);
     }
}


Model:
public class CourseSelectJsonModel
{
     public bool First { get ; set ; }
     public bool AddDrop { get ; set ; }
     public bool Abandon { get ; set ; }
}


將WinForm專案區分debug、Release環境設定

From Evernote:

將WinForm專案區分debug、Release環境設定

專案開發的過程通常都分為二種不同的版本

一個是debug,另一個則是Release

所以在環境上也會有不同

debug可能是使用Test Server

而Release是Online Server

這做法是為了避免服務中斷

但在Visual Studio內建並沒辦法完全區分這二種模式

不過在這,我們可以透過SlowCheetah套件達到這個目地

安裝方式:你可以直接到Visual Studio官方網站直接下載安裝,另外也可以透過Visual Studio內建的擴充功能和更新下載安裝

可以在上方功能列找到工具 -> 擴充功能和更新


點選左方的線上,在點選右方的搜尋輸入框
輸入SlowCheetah,中間會顯示搜尋到的結果
找到SlowCheetah - XML Transforms套件
點選下載

下載完後會出現安裝訊息
點選安裝

安裝完成後,會看到下方有段提示
您必須重新啟動Microsoft Visual Studio 才能讓變更生效。
選擇立即重新啟動


重開後就可以看見多出「Add Transform」選項


在點選「Add Transform」之後,你會看到
訊息是告知你,加入之後專案可能會被偵測出需要重新載入專案
繼續,按否則按


如果你沒有開任何專案裡的文件,是不會出現重新載入的訊息

結束後你就可以看到你的專案App.config底下多出二個檔案


現在你就可以依照你開發環境不同的需求做不同的設定

不過,一定要記得標籤後面要加xdt如果不明白可以看相關網址。


相關網址:



附件為2.5.5版的SlowCheetah套件