我现在面临的问题有如下:
我已经开发出一种便携式类库来封装服务连接。 这里面类库有包含字符串一个Resources.resw文件。 这些字符串仅由类库的方法调用(例如重写的ToString()方法)。
正如我说,这是一种便携式的类库。 如果我引用它作为一个DLL,或者甚至内部的另一种解决方案的一个项目,它被建造和正确编译。 然后,我让我的使用应用程序内这个库的方法的调用,说
ClientFacadeConnector connector = new ClientFacadeConnector();
ICollection<SearchResult> results = null;
string message = string.Empty;
if (maxResults != -1) //Search with max Results
{
try
{
if (!contextQuery.Trim().Equals(string.Empty))
{
results = await connector.GetConnected().SearchAsync(contextQuery, query, maxResults);
message = "Search with ContextQuery " + contextQuery + ", Query " + query + ", max results " + maxResults.ToString();
}
else
{
results = await connector.GetConnected().SearchAsync(query, maxResults, true);
message = "...using normal Query search, Query " + query + ", max results " + maxResults.ToString();
}
}
catch (IQserException ex)
{
message = ex.Message;
}
}
if (results != null)
{
ICollection<LocalSearchResult> contentResults = new List<LocalSearchResult>();
foreach (SearchResult s in results)
{
var q = s.ToString();
var contentItem = await connector.GetConnected().GetContentAsync(s.ContentId);
LocalSearchResult lContent = new LocalSearchResult(contentItem);
lContent.Score = s.Score;
lContent.Relevance = s.Relevance;
lContent.MarkFullText(query);
contentResults.Add(lContent);
}
在这里我呼吁s.ToString()方法的时候,我得到一个错误“资源地图未找到”。
为了解释这个地方来自:
public static class AppResources
{
private static ResourceLoader resourceLoader;
static AppResources()
{
// Load local file Resources.resw by default
resourceLoader = new ResourceLoader();
}
public static string GetResources(string key)
{
if (string.IsNullOrEmpty(key))
throw new ArgumentNullException("key");
return resourceLoader.GetString(key);
}
}
和重写的ToString()方法内有代码,如下所示:
public override string ToString()
{
StringBuilder buf = new StringBuilder(AppResources.GetResources("InstrSearchResultContent"));
if (ContentId != -1)
{
buf.Append(AppResources.GetResources("StringContent") + " ID:" + ContentId.ToString() + " | ");
}
else
{
buf.Append(AppResources.GetResources("StringNo") + AppResources.GetResources("StringContent") + "ID" + " | ");
}
...
资源文件被称为resources.resw并且是资源加载,如果没有其他的被称为调用默认resw文件。
奇怪的是,如果我复制的资源文件的客户端应用程序内本地,它是通过正确的类库的资源文件,一切工作的所有呼叫引用。
这个类库应该结束的时候是一个SDK。 我是否需要单独分配的资源文件?
这样的问题我从来没有与正常的类库和RESX文件经历。 Resw是给我毛骨悚然..