Spring.net 客户命名空间解析器

发布于 2024-08-02 08:33:06 字数 1178 浏览 5 评论 0原文

我有一个客户解析器,如下所示:

[NamespaceParser(
Namespace = "http://mysite/schema/cache",
SchemaLocationAssemblyHint = typeof(CacheNamespaceParser ),
SchemaLocation = "/cache.xsd"
)
]
public class CacheNamespaceParser : NamespaceParserSupport
{
public override void Init()
{
RegisterObjectDefinitionParser("cache", new CacheParser ());
}
}


public class CacheParser : AbstractSimpleObjectDefinitionParser
{

protected override Type GetObjectType(XmlElement element)
{
return typeof(CacheDefinition);
}

protected override void DoParse(XmlElement element, ObjectDefinitionBuilder builder)
{

}

protected override bool ShouldGenerateIdAsFallback
{
get { return true; }
}
}

在网络配置中,我有以下配置......

<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
<parser type="App.Web.CacheNamespaceParser, WebApp" />
</parsers>

当我运行该项目时,出现以下错误:

为 spring/parsers 创建配置节处理程序时发生错误:资源名称无效。名称必须位于 '程序集:<程序集名称>/<命名空间>/<资源名称>' 中格式。

我在 CacheNamespaceParser init 方法中放置了一个断点,然后调用它。

如果我删除 从网络配置来看一切都很好!

任何想法有什么问题

I have a customer parser which looks like this:

[NamespaceParser(
Namespace = "http://mysite/schema/cache",
SchemaLocationAssemblyHint = typeof(CacheNamespaceParser ),
SchemaLocation = "/cache.xsd"
)
]
public class CacheNamespaceParser : NamespaceParserSupport
{
public override void Init()
{
RegisterObjectDefinitionParser("cache", new CacheParser ());
}
}


public class CacheParser : AbstractSimpleObjectDefinitionParser
{

protected override Type GetObjectType(XmlElement element)
{
return typeof(CacheDefinition);
}

protected override void DoParse(XmlElement element, ObjectDefinitionBuilder builder)
{

}

protected override bool ShouldGenerateIdAsFallback
{
get { return true; }
}
}

in the web config i have the following configuration....

<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
<parser type="App.Web.CacheNamespaceParser, WebApp" />
</parsers>

When I run the project I get the following error:

An error occurred creating the configuration section handler for spring/parsers: Invalid resource name. Name has to be in 'assembly:<assemblyName>/<namespace>/<resourceName>' format.

I put a break point in the CacheNamespaceParser init method and it is called.

If I remove
from the web config all is well!

Any ideas whats wrong

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜雨飘雪 2024-08-09 08:33:06

它看起来像属性参数 SchemaLocation 是错误的。尝试这样的事情:

[NamespaceParser(
Namespace = "http://mysite/schema/cache",
SchemaLocationAssemblyHint = typeof(CacheNamespaceParser ),
SchemaLocation = "/YOUR_ASEMBLY_NAME/cache.xsd")]

如果你的cache.xsd位于程序集的根目录中,它必须工作。

Its look like attributes parameter SchemaLocation is wrong. Try something like this:

[NamespaceParser(
Namespace = "http://mysite/schema/cache",
SchemaLocationAssemblyHint = typeof(CacheNamespaceParser ),
SchemaLocation = "/YOUR_ASEMBLY_NAME/cache.xsd")]

It have to work if your cache.xsd is in the root of assembly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文