从Android项目里迁移过来的很多代码只需要做命名上的改动,就可以直接在Xamarin.Android 上使用,但是在使用WeChatOpenSDK的时候遇到很多方法在传参时需要传入String 类型的变量。在C#中字符串一般都是用string来创建,但是java中是String类来创建。不过C#中也有String类。所以代码中需要指明命名空间。
Java.Lang.String nickname;
由于习惯了对支付串变量强制转换,所以没按上述要求做,直接转码,导致代码在调试时报错。错误代码如下:
Java.lang.String nickname =(Java.lang.String)json.GetString("nickname");
结果再手机上调试时报出:System.InvalidCastException: Specified cast is not valid 错误;
因此修改以上代码,如下:
Java.Lang.String nickname =new Java.Lang.String( json.GetString("nickname"));
问题解决。