我正在学习C#和Xamarin Forms以及它目前正在制作一个简单的练习联系人应用程序。我一直在尝试使用名为PCLStorage的NuGet包。但是,当我单击“添加联系人”按钮时,我遇到了问题,并且调用了保存信息的方法。
async Task StoreInfoAsync(Contact tempContact)
{
string folderName = "ContactsFolder";
string fileName = "contacts.txt";
IFolder rootFolder = FileSystem.Current.LocalStorage;
IFolder folder = await rootFolder.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists);
IFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
await file.WriteAllTextAsync(tempContact.ToString());
}
async void Handle_Clicked_Add(object sender, System.EventArgs e)
{
nameLabel.Text = name.Text; //name and phone are entry fields on the screen
phoneLabel.Text = phone.Text;
newContact.Name = name.Text; //newContact is an instance of the Contact class which has name and phone properties
newContact.Phone = phone.Text;
await StoreInfoAsync(newContact);
}
此代码位于我的AddContacts代码隐藏类中。每当我单击屏幕上的Add Contact按钮时,就会调用“Handle_Clicked_Add”方法,而该按钮又调用StoreInfoAsync方法。但是,当它调用StoreInfoAsync方法时,应用程序会抛出以下异常:
This functionality is not implemented in the portable version of this assembly. You should reference the PCLStorage NuGet Package from you main application project in order to reference the platform-specific implementation.
我已经为此找到了解决方案,我一直看到的主要是我需要在PCL解决方案以及Android和iOS解决方案中包含PCLStorage包,我已经这样做但错误仍然存在仍然存在。
我还看到了一些关于这个包如何使用诱饵和开关技术的东西,其中PCL有诱饵,并且在运行时它通过平台特定的实现被切换出来。唯一的问题是我不太熟悉C#而我正在尝试自己学习它,所以我不知道如何自己实现这个诱饵和切换技术并为所有事情创建我自己的实现。
欢迎任何输入或解决方案。