标签: resourcemanager

Xamarin.Forms + .resx字符串资源-System.IO.FileNotFoundException:无效的图像

我正在基于C#共享代码项目和用于实际Android + iOS应用程序的另外两个项目创建Xamarin.Forms应用程序。

我现在想实现本地化字符串就像是记录在这里。因此,我在解决方案中为.resx文件创建了一个.net标准2.0库项目,并在我的两个主要项目中引用了该项目,当然,我完成了链接文章中描述的所有其他步骤。

现在,当我想从我的一个应用程序项目中访问任何字符串资源时,ResourceManager.GetString抛出此异常:System.IO.FileNotFoundException: Invalid Image

示例代码将是该行,但也可以是任何其他字符串资源。

public static string global_copyright {
    get {
        return ResourceManager.GetString("global_copyright", resourceCulture);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以确认已正确找到并加载了该库项目的程序集,因为我可以创建该项目中定义的其他类的实例。

现在,我将这段代码直接放在App()构造函数的开头,就像该文章中描述的那样,以调试此类问题:

var assembly = typeof(AppResources).GetTypeInfo().Assembly;
foreach (var res in assembly.GetManifestResourceNames())
{
    System.Diagnostics.Debug.WriteLine("found resource: " + res);
}

var test = AppResources.global_copyright;
Run Code Online (Sandbox Code Playgroud)

第一行执行得很好,它向我展示了在该程序集中找到了一个资源文件。它的名字也是正确的。但是在最后一行,它因该异常而崩溃。我怎么了 为什么ResourceManager无法从该程序集中加载字符串资源?

带有Xamarin.Forms v3.4的Visual Studio 2017(15.9.6)

.net resourcemanager xamarin.forms

7
推荐指数
1
解决办法
779
查看次数

ASP.Net和GetType()

我想获得一种我正在创建的"BasePage"对象.每个Page对象都基于BasePage.例如,我有一个Login.aspx和我的代码隐藏以及一个具有方法Display的类:

Display(BasePage page) {
    ResourceManager manager = new ResourceManager(page.GetType());
}
Run Code Online (Sandbox Code Playgroud)

在我的项目结构中,我有一个默认资源文件和一个伪翻译资源文件.如果我设置尝试这样的事情:

Display(BasePage page) {
    ResourceManager manager = new ResourceManager(typeof(Login));
}
Run Code Online (Sandbox Code Playgroud)

它返回翻译的页面.经过一些研究后,我发现page.GetType().ToString()返回了"ASP_login.aspx"的效果.如何获取类类型后面的实际代码,这样我就得到一个类型为"Login"的对象,即派生自"BasePage"?

提前致谢!

c# asp.net reflection resourcemanager

6
推荐指数
1
解决办法
8680
查看次数

通过ResourceManager GetObject获取图像 - 每次调用它还是存储结果?

假设我必须在某些控件上显示一些图形.但是根据某些条件会有三个图像切换.资源文件中添加了三个位图.

所以,我通过调用ResourceManager.GetObject来检索它们.

问题是,它应该是:

  1. 每次我必须切换图像,我调用GetObject来获取它并分配给控件或
  2. 在开始时为每个图像保存GetObject的结果,这样就只能对GetObject进行3次调用.从我的变量中分配图像.

使用CLR Profiler查看时,执行1)似乎会产生大量GC句柄.希望知道2)的任何不良副作用.

非常感谢.

c# resourcemanager

6
推荐指数
2
解决办法
5397
查看次数

asp.net从指定文化获取.resx的所有资源(ResourceManager.GetResourceSet)

我首先在堆栈溢出时遇到了类似于我的问题:循环遍历ResourceManager中的所有资源 - C#.它只解决了我需要做的部分工作.当您在特定文化的资源文件中请求条目时,如果没有存在,它将默认返回中性文化资源文件.

我需要遍历给定资源文件的每个条目,而GetResourceSet需要一个文化.例如,我有一个中性资源文件,其中包含3个条目,以及一个文化特定资源文件,其中包含1个条目的中性文件.

我的中性资源示例文件是MyResource.resx,我的特定于文化的资源示例文件是MyResource.en-gb.resx.以下代码显示了我当前正在尝试遍历并访问所有资源条目的方式.

Dim cultInfo as New CultureInfo(culture)
For Each entry As System.Collections.DictionaryEntry In myResourceManager.GetResourceSet(cultInfo, True, True)

Next
Run Code Online (Sandbox Code Playgroud)

中性资源文件条目

  • 全名/全名
  • 电话号码/电话号码
  • 州/州

文化特定资源文件输入

  • 州/县

当我为特定文化调用GetResourceSet时,我只返回1个条目.我期待(并希望)在覆盖一个特定于文化的条目时取回所有3个条目.这是我想要的回报:

  • 全名/全名
  • 电话号码/电话号码
  • 州/

无论如何我能做到这一点吗?谢谢.

asp.net resources resx cultureinfo resourcemanager

6
推荐指数
1
解决办法
6497
查看次数

我应该为每个Web请求使用静态缓存的ResourceManager还是新实例?有关系吗?

在使用.Designer.cs生成的类()中使用"缓存的ResourceManager实例"的ResourceManager每个请求上创建新.NET的性能(或其他)含义是什么?new ResourceManger(myResourceType.FullName, myResourceType.Assembly)MyResourceType.ResourceManager

我正在使用.resx文件在ASP.NET MVC 3应用程序的上下文中工作.

编辑:我感兴趣的是除了为新对象分配内存的成本之外的影响.

编辑:查看MSDN文档ResourceManager.ReleaseAllResources,它指出:

This method will shrink the working set in a running application. Any future resource lookups on this ResourceManager will be as extensive as the first lookup, since it will need to search and load resources again.

这似乎意味着资源集的初始开放是昂贵的,这表明在每个请求上创建一个新的经理可能是昂贵的.但是,文档并未提出有关资源管理器生命周期/范围的最佳实践.

c# asp.net-mvc static resx resourcemanager

6
推荐指数
1
解决办法
2235
查看次数

创建一个非拥有的shared_ptr?

我对C++ 11很陌生,现在正试图通过避免直接使用指针来提高我的C++技能.我正在尝试编写一个精灵管理器,它跟踪以前加载的精灵并释放未使用的精灵.我正在尝试使用shared_ptr(指向位图的指针),但是管理器还必须保持shared_ptr来创建精灵 - 所以引用计数不会下降到0.我可以以某种方式声明"父"shared_ptr在我的经理非拥有所以它不算作参考(并仍然创建该shared_ptr的拥有副本)?

c++ resourcemanager shared-ptr c++11

6
推荐指数
1
解决办法
753
查看次数

用于资源管理的C++ shared_ptr与unique_ptr

我一直在思索使用unique_ptrVS shared_ptrVS own_solution.我已经贴现后,我几乎肯定会弄错了,但我有一个问题,都unique_ptrshared_ptr中,无论是捕捉恰恰就是我想要的.我想创建一个显式拥有资源的资源管理器,但是我希望资源管理器也能分发对资源的引用.

如果我unique_ptr在资源管理器中使用并分发原始指针,那么他们可能会逃到其他地方(尽管这会违反我认为的类"合同").如果我使用shared_ptr和分发weak_ptr,那么没有什么能阻止调用者将其转换weak_ptr为a shared_ptr并存储它,从而可能创建一个循环或更糟的是,资源生存在资源管理器的生命周期之外.因此,我认为我正在寻找的是一种weak_ptr无法转化为无法实现的shared_ptr.

或者我只是想在代码中使用一些措辞强烈的评论强制执行合同?

感谢您对此可能有的任何想法.

c++ smart-pointers resourcemanager shared-ptr unique-ptr

6
推荐指数
2
解决办法
1705
查看次数

C#读取程序集外部的.resx文件会抛出MissingManifestResourceException

我正在开发一个包含Asp.Net Web应用程序和Windows服务应用程序的项目.这两个可以使用我创建的共同项目来包含资源文件.我想把资源文件放在程序集的一边,所以当我想要更改它们时,它们可以编辑而无需编译所有解决方案.我搜索一个方法,在这里找到一个;

ASP.NET Resourcemanager读取本地.resx

它在Web应用程序上运行得很好,但是经过一段时间我看到,Windows服务应用程序无法读取这些资源而且我得到了

System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture (or the neutral culture) on disk.
baseName: abc  locationInfo: <null>  fileName: abc.resx
   at System.Resources.FileBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark)
   at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
   at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
   at System.Resources.ResourceManager.GetObject(String name, CultureInfo culture, Boolean wrapUnmanagedMemStream)
   at System.Resources.ResourceManager.GetObject(String name, CultureInfo culture)
   at yyyy.yyyyyy.yyyyyyy.GetGlobalResourceObject(String classKey, String resourceKey, Boolean getCommon)
   at xxx.xxx.xxx.Entities.xxxxxxxx.get_LocalizedName()
   at yyyyy.Adapters.ArchiverDtoAdapter.CreateArchiverInjectionsDto(InjectionProcedure procedure, INamingService …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net resx resourcemanager

6
推荐指数
1
解决办法
1370
查看次数

Hadoop application hangs due to container token and NM token error

i'm new to Hadoop developing and i'm trying to install a multi-node cluster on Hadoop 2.4.1. However, i'm going through some issues. When i try to execute an example (wordcount or pi), the execution stops at

INFO mapreduce.Job: Running job: job_1412689235580_0001
Run Code Online (Sandbox Code Playgroud)

and analyzing the logs i get a repeted error in the resourcemanager log:

     2014-10-07 15:56:40,978 ERROR org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplicationAttempt: Error trying to assign container token and NM token to an allocated container container_1412689235580_0001_01_000001
java.lang.IllegalArgumentException: java.net.UnknownHostException: federica-VirtualBox
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:377)
at org.apache.hadoop.yarn.server.utils.BuilderUtils.newContainerToken(BuilderUtils.java:248)
at …
Run Code Online (Sandbox Code Playgroud)

hadoop resourcemanager

6
推荐指数
0
解决办法
1129
查看次数

当存在多个不同语言的资源文件时,如何检索中性语言资源?

我有多个资源文件来支持不同的语言。用户将以他的首选语言呈现资源。正在对应用程序日志进行附加记录,我只想使用中性语言(英语)进行记录。

我不想要仅用于英语消息的专用资源文件。以最终用户的语言向最终用户显示的相同消息应该能够以英语另外记录到应用程序日志文件中。

这样做的最佳方法是什么?

c# culture resources localization resourcemanager

5
推荐指数
1
解决办法
2022
查看次数