我目前正在Xamarin Studio IDE中的MonoTouch中开发两个项目:一个C#可移植库项目,我将其用作使用JSON向我的服务器发出请求和处理响应的包装类。我的第二个项目,目前是一个简单的基于C#控制台的应用程序,我用它来测试第一个项目的开发。最后,我将删除第二个项目并为iOS应用程序创建一个新项目,该应用程序将使用我的包装类。
然而,由于一些奇怪的原因,我一开始就陷入困境。我正在按照本教程学习如何使用HttpWebRequest类发出HTTP Web请求:http://docs.xamarin.com/guides/cross-platform/application_fundamentals/introduction_to_web_services#2.1.1.using-httpwebrequest
我只在我的包装类构造函数中的demo中编写了第一行(第二行)代码,用于原型设计:
using System;
using System.Net;
namespace MyWebApp
{
public class MyWebAppClient
{
private string Password { get; set; }
private string Username { get; set; }
public MyWebAppClient (string Username, string Password)
{
this.Username = Username;
this.Password = Password;
var request = HttpWebRequest.Create (new Uri("http://google.com/"));
}
}
}
我非常简单的文字项目:
using System;
using MyWebApp;
namespace MyTest
{
class MainClass
{
public static void Main (string[] args)
{
MyWebAppClient client = new MyWebAppClient("username","password");
}
}
}
当我运行测试项目时,我得到以下异常:
System.IO.FileNotFoundException: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies.
at ASDFTest.MainClass.Main (System.String[] args) [0x00000] in /Users/William/BitBucket/ASDFiOS/ASDFiOS/ASDFTest/Program.cs:11
如果我在另一个项目的构造函数中删除了那一行(创建了HttpWebRequest对象),那么异常就会消失。
有人知道是什么原因引起的吗?我完全被这里难住了,而且我对MonoTouch很陌生。
答案 0 :(得分:0)
经过进一步调查,似乎不完全支持使用PCL(MyWebApp命名空间所在的位置)(http://forums.xamarin.com/discussion/28/challenges-thoughts-loves#latest)。这有点遗憾,我想有一些黑客可以做到,但为了我的项目,我想我现在将把我的解决方案保留到一个项目。