C# 在Android中从Xamarin PCL访问类可以正常工作,但在iOS中不能

C# 在Android中从Xamarin PCL访问类可以正常工作,但在iOS中不能,c#,android,ios,xamarin,portable-class-library,C#,Android,Ios,Xamarin,Portable Class Library,我是Xamarin的新手,目前也在与C#作斗争。 我正在开发一个跨平台的Xamarin应用程序(用于Android iOS),目前我已经使用REST服务创建了一个PCL,用于简单的GET方法。 目标是根据查询参数loginName PCL代码: public async Task<CustomerResponse> GetCustomerAsync(string inLoginName) { var url = new StringBuilde

我是Xamarin的新手,目前也在与C#作斗争。 我正在开发一个跨平台的Xamarin应用程序(用于Android iOS),目前我已经使用REST服务创建了一个PCL,用于简单的GET方法。 目标是根据查询参数loginName

PCL代码:

public async Task<CustomerResponse> GetCustomerAsync(string inLoginName)
        {
            var url = new StringBuilder().Append(urlProtocol)
                .Append("://").Append(urlDomain)
                .Append("/").Append(urlBase)
                .Append("/").Append(pathParamVersion)
                .Append("/").Append(pathParamLanguage)
                .Append("/").Append(urlGetCustomer);

            url.Append("?").Append(queryParamClientKey).Append("=").Append(queryParamClientVal)
                .Append("&").Append(queryParamChannelKey).Append("=").Append(queryParamChannelVal)
                .Append("&").Append(queryParamLoginNameKey).Append("=").Append(inLoginName);

            System.Diagnostics.Debug.WriteLine(url);

            CustomerResponse customerResponse = null;

            var client = new HttpClient();

            // Add an Accept header for JSON format.
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            HttpResponseMessage response = await client.GetAsync(url.ToString());


            if (response.IsSuccessStatusCode)
            {
                customerResponse = await response.Content.ReadAsAsync<CustomerResponse>();
            }

            else {

                System.Diagnostics.Debug.WriteLine("Error in response");
            }

            return customerResponse;
        }
button.Click += async delegate {
                button.Enabled = false;

                CustomerResponse customerResponse = await RESTWSManager.getInstance().GetCustomerAsync("steven");

                button.Text = string.Format("{0} clicks! {1}", count++, customerResponse.customer.lastName);

                button.Enabled = true;
            };
iOS本机代码(在ViewController.cs中)

问题

问题在于iOS应用程序,而在安卓系统中,它工作得非常完美。我想不出问题出在哪里

在ViewController.cs中,CustomerResponse显示“找不到类型或命名空间”,即使它是公共类。(在android中,我没有看到错误)


有人能帮我解决这个问题吗?

是“CustomerResponse.cs”在Android项目中还是在PCL项目中?如果
CustomerResponse
在PCL中,请确保将PCL添加为iOS项目的引用。另外,如果您进行构建,是否真的会出现构建错误?如果您使用的是XamarinStudio,我经常会看到类名显示为红色,好像找不到它们一样,但它构建并运行良好。这可能是您的问题。请用string.Format()替换该URL构建;谢谢大家!我核实了参考资料,PCL,但没有运气。我重新启动了Visual Studio,它开始工作!!
public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
            // Perform any additional setup after loading the view, typically from a nib.
            Button.AccessibilityIdentifier = "myButton";
            Button.TouchUpInside += async delegate {

                CustomerResponse customerResponse = await RESTWSManager.getInstance().GetCustomerAsync("steven");

                var title = string.Format ("{0} clicks!", count++, customerResponse.customer.lastName);
                Button.SetTitle (title, UIControlState.Normal);
            };
        }