要在发布期间启用自定义用户首选项,我们希望在解析步骤(在自定义解析程序内)中找出发布用户的内容(因此不是为发布服务配置的用户帐户,而是启动发布操作的用户).
要查找原始发布用户,我们需要访问PublishTransaction对象(特别是Creator属性); 我们无法在自定义解析程序中使用Session中的User属性,因为此Session是由Publisher服务创建的(并且会为我们提供服务帐户).
为了找到当前的PublishTransaction Mihai为我们提供了一个优秀的黑客.在本质上; 如果我们能够掌握Engine对象,我们就可以确定上下文发布事务.
在我们的自定义解析器中,使用四个参数调用Resolve方法:
public void Resolve(
IdentifiableObject item,
ResolveInstruction instruction,
PublishContext context,
ISet<ResolvedItem> resolvedItems
) { }
Run Code Online (Sandbox Code Playgroud)
我的问题(最后)将是双重的:
1.我是否错过了可以确定上下文用户帐户的任何潜在点(除了PublishTransaction)?
2.我是否错过了可以根据调用IResolver.Resolve()方法的参数确定引擎的任何潜在点?
编辑:我意识到我忽略了为什么我们想要使用额外的元数据(来自用户首选项)自定义发布活动的更广泛的图片,因为它有点长故事;
我最终需要的是激活组件模板中特定版本的组件(通过向上移动版本列表并查找链接到专用标记组件的版本),但为了做到这一点,我需要知道标记组件是.出于这个原因,我们发布了标记组件(它将解析所有链接的组件和最终的页面),自定义解析器允许我们将标记组件的TCMURI推送到会话缓存中(使其可以在CT中访问).
现在,我们希望在用户级别为特定标记组件设置"首选项",以允许在此标记上下文中发布较小批量的资产(而不是一次发布链接到标记的所有内容).
因为在CT内部运行的TBB实际上有可用的Engine对象,我们可以使用Mihai的方法并确定发布用户(而不是从解析器推送标记上下文,而不是我们最初做的),并以这种方式完全绕过该问题.
我想知道为什么在解析和渲染操作之间信息可用性存在这样的差异; 两者都是同一出版背景的后续部分.我不禁觉得我忽略了一些非常基本的东西,但也许我不是,从解析器访问发布上下文或引擎根本不可能.
编辑:由Dominic推定并由Nuno确认,在解决时没有"引擎"; 因此我的问题的这一半已得到回答.离开了
我是否错过了可以确定上下文用户帐户的任何潜在点(PublishTransaction除外)?
我有一个Android应用程序,它执行此操作:
PackageManager pm = getApplicationContext().getPackageManager();
Intent browserIntent = new Intent();
browserIntent.setAction(Intent.ACTION_VIEW);
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
browserIntent.setData(Uri.parse("http://www.google.com"));
ResolveInfo resolveInfo = pm.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
try {
String browserType = nutent.activityInfo.packageName;
} catch (NullPointerException npe) {
npe.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我已经在4种不同的手机和许多不同的仿真器配置上进行了测试.所有这些都很好.但我正在从野外部署的应用程序中获取崩溃报告,因为resolveInfo有时为null.
立即修复是在崩溃我的应用程序之前捕获NPE并处理它(如上所述).但是我已经尝试了几天自己重现这一点而不能.在安装了单个默认浏览器的模拟器上,它解析为com.android.browser.BrowserActivity:
ResolveInfo{411ef228 com.android.browser.BrowserActivity p=0 o=0 m=0x208000}
Run Code Online (Sandbox Code Playgroud)
同样,在安装了多个浏览器的手机上,这有点不同......对于com.android.internal.app.ResolverActivity:
ResolveInfo{415c13b8 com.android.internal.app.ResolverActivity p=0 o=0 m=0x0}
Run Code Online (Sandbox Code Playgroud)
该resolveActivity()文档在此状态:
返回ResolveInfo,其中包含被确定为最佳操作的最终活动意图.如果未找到匹配的活动,则返回null.如果找到多个匹配活动且没有默认设置,则返回包含其他内容的ResolveInfo,例如活动解析程序.
所以我已经介绍了第一个场景,即被确定为最佳动作的活动意图.最后一个场景,即没有默认操作的多个匹配活动,返回ResolverActivity.
我真的想重现resolveActivity()的场景,在请求URL的活动时给我一个null.有没有人知道如何在没有设备生根的情况下完成这项工作?
我使用nginx作为与ELB的reverse_proxy服务器.我正在寻找有关我在nginx.conf文件中设置的解析器值的解释.我的nginx.conf:
http {
...
resolver x.x.x.x valid=30s;
...
}
server {
...
set $elb "example.com";
location / {
...
rewrite ^/(.*) $1 break;
proxy_pass http://$elb/$1?$args;
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我按照这个 - https://www.ruby-forum.com/topic/6816375#1166569并将/etc/resolv.conf值设置为解析器值,它工作正常.这背后的是什么?
我正在寻找一种使用一条角度路线的方法来解决要在所有路线上使用的问题,但是要使用不同的参数:
目前,我有类似的东西:
{
path: 'user/:any',
component: UserprofileComponent,
resolve: { ProfiledUser: UserprofileResolver }
},
Run Code Online (Sandbox Code Playgroud)
profileuser解决:
resolve(route: ActivatedRouteSnapshot) {
return this.GlobalService.Get('/userprofile/admin');
}
Run Code Online (Sandbox Code Playgroud)
我实际上正在为解析器本身寻找一种使用Get函数使用的参数的方法GlobalService。
我以前做了一些理论上可行的事情:
path: 'family/panel',
component: FamilyCoreComponent,
canActivate: [PermissionGuardService],
data: {roles: [0]},
Run Code Online (Sandbox Code Playgroud)
在哪里可以激活权限保护:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean>|boolean {
var requirementRole = next.data.roles[0];
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我应该像对权限保护员那样使用解析器的原理吗?
例如:
{
path: 'user/:any',
component: UserprofileComponent,
resolve: { ProfiledUser: UserprofileResolver }
data: {load: 'userprofile/admin'},
},
Run Code Online (Sandbox Code Playgroud)
这会是一个好方法吗?如果是这样,我将如何使其变得最高效?
我正在使用macports来安装各种模块.一般来说这很好用,但下面是我得到的错误,我不容易解决:
$ python
Python 2.6.6 (r266:84292, Feb 12 2011, 16:57:53)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dns
>>> import opcode
>>> from dns import resolver
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/resolver.py", line 26, in <module>
import dns.message
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/message.py", line 28, in <module>
import dns.opcode
ImportError: No module named opcode
Run Code Online (Sandbox Code Playgroud)
这可能是路径问题吗?
>>> import sys
>>> sys.path
['', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', …Run Code Online (Sandbox Code Playgroud) 我正在学习如何使用 python dns 对象。我看到许多示例的快速问题显示了使用 DNS 记录类型(CNAME、NS 等)的 dns.resolver 方法的方法。有没有办法使用这个 dns 对象来查询 DNS 名称并使用记录类型提取它的解析。类似于 DIG 在答案部分提供的内容。
谢谢,
吉姆
使用5.0.1不推荐使用REPORT_FILE_RESOLVER和示例实现:http: //jasperreports.sourceforge.net/sample.reference/tableofcontents/index.html#fileresolver
声明强烈建议切换到JasperReportsContext.
我找不到任何JasperReportsContext用法的例子.据我所知,我应该寻找具有FileResolver getter和setter的LocalJasperReportsContext.
我问,怎么做呢?
我正在使用Mac OS X 10.10.3 Yosemite。最近从雪豹(10.6.8)升级到优胜美地。
步骤-A:在MacBook中,我登录到具有Admin类型的特权帐户,并从Apple App Store安装了最新的免费“ Xcode”。通过使用Xcode,添加了“命令行工具”等。
步骤B:
从http s:// brew.sh /网站安装Homebrew 。从Homebrew网站复制粘贴到终端中的命令行代码下面:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
进程/脚本上方检查是否存在各种必要的软件和设置,并显示(需要在“终端”窗口中查看信息和状态),还需要其他什么命令或工具。获得或执行,我跟随那些。
步骤-C:
当“自制”及相关的安装步骤都完成后,再装为“OpenSSL”和使用“酿造”工具“绑定”,通过命令行终端:
• brew help
• brew update
• brew install unbound openssl
• sudo cp -fv /usr/local/opt/unbound/*.plist /Library/LaunchDaemons
• sudo chown root /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
• sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
• brew upgrade --all
步骤D:
重新启动MacBook,然后在“ dig ”命令下尝试,并且在dns查询结果中未显示“ ad”标志,这表明DNSSEC身份验证的DNS解析仍无法正常工作并被禁用!
dig @127.0.0.1 in TLSA _443._tcp.www.dnssec-validator.cz. +dnssec
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
dig @192.168.10.1 in TLSA _443._tcp.www.dnssec-validator.cz. …Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于域提取其站点副本的应用程序.我有一个应用程序工作有一个例外.我正在app.component模板中定义应用程序的导航栏和页脚,如下所示.
<navigation></navigation>
<router-outlet></router-outlet>
<appFooter></appFooter>
Run Code Online (Sandbox Code Playgroud)
在appFooter和导航模板的内部,我使用下面的安全导航操作符解析数据
<p>{{copyService.copy?.somevalue}}</p>
Run Code Online (Sandbox Code Playgroud)
我真正想做的是使用解析器和ActivatedRoute的数据属性来做这样的事情
var copy = this.route.snapshot.data['copy'];
Run Code Online (Sandbox Code Playgroud)
在应用程序组件中.然后将数据通过输入变量传递到页脚和导航.
不幸的是,当我重定向到我的主组件时,我不确定如何解析应用程序组件
{ path: '', redirectTo: '/home', pathMatch: 'full'},
Run Code Online (Sandbox Code Playgroud)
如果有人对完成此任务的最佳方式有任何想法,我将不胜感激.先感谢您.
请知道我提供的代码只是示例代码,而不是来自我的实际代码库,我只是想说明我当前遇到的问题.
我正在开发一个 GraphQL -> SQL 解析器,其中包含一些连接,因此是否请求某个字段会产生性能差异。有办法找出来吗?
我正在学习对象类型,所以我认为这可能与在其上设置解析器有关。但是解析器在独立于其他事物请求的字段级别上工作。而我试图在最顶层的查询级别上找出GraphQL 查询中请求了哪些字段。这将塑造 SQL 查询。
public class QueryType : ObjectType<Query>
{
protected override void Configure(IObjectTypeDescriptor<Query> descriptor)
{
descriptor
.Field(f => f.GetACUMonthlySummary(default!, default!, default!, default!, default!, default!))
.Type<ListType<ACUMonthlySummaryType>>();
}
}
Run Code Online (Sandbox Code Playgroud)
我看到了 js 的相关问题,但没有找到任何专门在 C# 和 HotChocolate 中的示例,这就是我们正在使用的。