C# 使用Xamarin'将可移植类传递给活动;Android的Mono

C# 使用Xamarin'将可移植类传递给活动;Android的Mono,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我正在用Xamarin开发一个应用程序,它将在Windows Phone、iOS和Android上发布。这个项目包括大量的可移植代码,在所有三个版本中都有使用 目前,我正在开发Android应用程序,遇到了一个问题——我需要将我的一个可移植类(一个包含一些基本值的简单模型)传递到活动中。这应该是实现IParcelable的一个简单例子,但因为这是一个可移植类,我不能简单地扩展Java.Lang.Object,所以我不确定这会给我带来什么 如何允许我的模型通过捆绑包传递给活动而不更改可移植类? 我

我正在用Xamarin开发一个应用程序,它将在Windows Phone、iOS和Android上发布。这个项目包括大量的可移植代码,在所有三个版本中都有使用

目前,我正在开发Android应用程序,遇到了一个问题——我需要将我的一个可移植类(一个包含一些基本值的简单模型)传递到活动中。这应该是实现IParcelable的一个简单例子,但因为这是一个可移植类,我不能简单地扩展Java.Lang.Object,所以我不确定这会给我带来什么

如何允许我的模型通过捆绑包传递给活动而不更改可移植类?

我所说的一个非常简单的例子:

便携式模型

实现iparceable的模型

最后,这是我希望如何将此模型传递给活动的方式


只要您希望在意图中传递的数据是最小的,您就可以保持类的原样并用于序列化。例如:

string jsonModel = JsonConvert.SerializeObject(myModel);
intent.PutExtra("model", jsonModel);
然后在你的其他活动中,它会是这样的:

string json = intent.getExtra("model");
Model model = JsonConvert.DeserializeObject<MyModel>(json);
string json=intent.getExtra(“model”);
Model Model=JsonConvert.DeserializeObject(json);

太棒了,谢谢!我的模型相当小且简单,所以这是完美的,但对于较大的类,这是否仍然表现良好?Json.NET表现非常好,但我更担心的问题是,意图限制了可以用于额外功能的内存量。不过我不知道这是什么意思。对于较大的数据集,您需要在活动启动后从其他地方检索数据。
var intent = new Intent(Activity, typeof(MyActivity));
var bundle = new Bundle();

bundle.PutParcelable("model", model); // 'model' is an instance of MyParcelableModel
intent.PutExtras(bundle);
Activity.StartActivity(intent);
string jsonModel = JsonConvert.SerializeObject(myModel);
intent.PutExtra("model", jsonModel);
string json = intent.getExtra("model");
Model model = JsonConvert.DeserializeObject<MyModel>(json);