2013-08-29 47 views
8

我試圖在Unity項目中構建一個REST服務器,並且最初認爲南希看起來是明顯的選擇。很多頭痛之後然而,我還是遇到了麻煩南希統一單聲道運行時中運行 - 我可以編譯和運行Xamarin但團結給了我而無益的輸出whne我嘗試使用資產:在Unity3d中運行REST服務器

Internal compiler error. See the console log for more information. output was: 
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. 
    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) 
    at System.Reflection.Assembly.GetTypes() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.LoadReferences() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Compile() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

我不能成爲唯一一個嘗試過這樣的東西的人,並且希望跨越多個項目來使用它,因此重複使用是重中之重 - 任何人都可以成功實現這樣的事情,如果可以的話,你可以給我任何指針?

我真的很想讓Nancy工作,但另一種輕鬆嵌入REST服務器的方式也同樣重要。

+0

只是一個長期的 - 但是這不是一個.NET版本的問題?最後我使用Unity3d的版本仍然在Mono的2.x版本上,並宣稱自己正在使用.NET 2.0運行時的「子集」。在實踐中,我發現我可以使用後來的.NET版本的各種功能,但沒有全部。另一方面,如果我沒有弄錯Nancy的目標是從.NET 3.5向前工作(但不是舊版本)。 –

+0

也發現這個:http://answers.unity3d.com/questions/636739/reflectiontypeloadexception.html –

回答

0

this thread on Unity Answers,它的發生是因爲統一使用.NET子集不包括的System.Web,所以複製System.Web.dll程序V2.0.50727該項目解決了這個問題。

但是,如果內存服務,我想起Unity中的一個選項,強制它使用完整的.NET 2.0運行時而不是子集,這也可能解決問題。自從我使用Unity以來,這一段時間可能會被刪除。

編輯:See here它被稱爲「兼容性級別」。

編輯2:它在Player Settings

0

我從來沒有設法得到一個HTTP服務器的統一客戶端內運行,(接受的答案看起來正確,但爲時已晚我測試了一下,讓我知道它是否不起作用),至少在統一中4似乎排除了單聲道運行時的必要部分。事情可能會有所不同5,我目前沒有團結一致,所以恐怕我沒有及時更新。

考慮到這一點,我選擇的解決方案是使用外部服務器的監聽http客戶端 - 這種方式運行得相當好,但事情變得稍微複雜一些。

我後來聽說的另一個解決方案是使用Thrift協議,在https://github.com/amilstead/unity3d-thrift-twisted上有一個例子,它應該足以開始使用,並且在各種語言中支持Thrift,成語有點與http的不同,但通常這可能更適合您希望嵌入http服務器的大多數情況。