【问题标题】:Sharing string resources between platforms in PCL projectPCL项目中平台间共享字符串资源
【发布时间】:2015-06-01 09:36:37
【问题描述】:

我正在创建 Xamarin 多平台移动项目,我想使用 PCL 共享项目来共享部分代码。

我还想在平台之间共享一个字符串文件,因为它们对于每个平台都是相同的。

我在我的 PCL 项目中创建了新的 .resx 文件,但我不知道如何在我的 Android/iOS 项目中使用它的值。 有什么建议吗?

PCL 项目中 AppResources.resx 的内容:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
    </resheader>
    <resheader name="version">
        <value>2.0</value>
    </resheader>
    <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    </resheader>
    <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    </resheader>
    <data name="ConnectButton" xml:space="preserve">
        <value>Connect</value>
    </data>
    <data name="IpAddress" xml:space="preserve">
        <value>IP Address</value>
    </data>
</root>

【问题讨论】:

    标签: android xamarin xamarin.ios xamarin.android xamarin-studio


    【解决方案1】:

    你应该可以写:

    var ipAddress = AppResources.IpAddress;
    

    var connectButton = AppResources.ConnectButton;
    

    您可以在文档中找到更多信息:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/

    【讨论】:

    • 我没有使用 Xamarin 表单。
    • 所以?文档仍然相关。
    • 我得到:Common.AppResources 由于其保护级别错误消息而无法访问。
    • @dease - 将 .resx 文件上的自定义工具更改为 PublicResXFileCodeGenerator。您可以通过选择 .resx 文件的属性来更改自定义工具。然后对您的 .resx 文件进行小幅更改,以重新生成 Designer.cs 文件。那么你的资源应该是公开的,这样你就可以从另一个程序集访问。
    • 我删除了我的答案,因为我没有意识到你可以公开资源。我学到了一些新东西。谢谢@MattWard。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多