任何人都能解释一下细节吗?如果我使用创建对象
$var = [PSObject]@{a=1;b=2;c=3}
Run Code Online (Sandbox Code Playgroud)
然后我使用getType()PowerShell 查找它的类型告诉我它的类型为Hashtable.
当使用Get-Member(别名gm)来检查对象时,很明显已经创建了一个哈希表,因为它有一个keys和一个values属性.那么"普通"散列表的区别是什么?
另外,使用PSCustomObject有什么好处?使用这样的东西创建一个
$var = [PSCustomObject]@{a=1;b=2;c=3}
Run Code Online (Sandbox Code Playgroud)
对我来说唯一可见的区别是PSCustomObject的不同数据类型.此外,还有一个检查gm显示现在每个键都已添加为NoteProperty对象,而不是键和值属性.
但我有什么优势?我可以通过使用其键来访问我的值,就像在哈希表中一样.我可以在PSCustomObject中存储多个简单的键值对(例如键对象对),就像在哈希表中一样.那有什么好处?有什么重要的区别吗?
我按照这里发布的教程获得了一个基础应用程序来使用Spring Data JPA.现在,我如何理解,使用配置
<jpa:repositories base-package="my.package.to.scan" />
Run Code Online (Sandbox Code Playgroud)
应该导致Spring Data JPA扫描的包用于扩展接口JpaRepository并创建它的concreate bean,因此可以使用简单的Spring在我的服务类中的任何地方使用它@Autowired.但它失败了,说它找不到带有className的bean(这是bean在创建时获得的默认名称,只需使用去大写的ClassName).
但是,当我在我的applicationContext中配置bean manualy时,如下所示:
<bean id="ClassName" class="my.package.to.scan.ClassName"/>
Run Code Online (Sandbox Code Playgroud)
Spring能够找到豆子.我当然得到一个错误,因为我想从一个接口创建一个bean,这显然是行不通的.但问题是,似乎Spring Data JPA"自动bean创建"似乎以某种方式失败了.
我附上相关代码,以便您查看.顺便说一句,我应该提一下,我正在开发一个portlet,所以不要奇怪为什么我没有spring-config.我目前只使用applicationConfig和一个MyPortlet-Portlet.xml进行portlet配置(但这不应该与此问题相关).我添加了import语句只是为了确保我没有使用错误的注释/类.
applicationContext.xml中
<beans *** ALL MY XMLN's and XSI's *** />
<context:annotation-config />
<jpa:repositories base-package="model.repositories" />
// JPA specific configuration here: dataSource, persistenceUnitManager exceptionTranslator, entityManagerFactory, SessionFactory, transactionManager - should not be relevant for this problem, tell me if i'm wrong
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
Run Code Online (Sandbox Code Playgroud)
ICustomerService - 只是CustomerService的一个接口
import model.entities.Customer;
public interface ICustomerService {
// example method
public …Run Code Online (Sandbox Code Playgroud) 使用亚马逊API似乎不再可能获得产品的评论排名信息.检查此链接的说明是:
自2010年11月8日起,请求内容中仅返回iframe网址.
然而,使用params进行测试他们建议获得Iframe,但现在看来甚至Iframe都不再起作用了.因此,即使在"激励客户购买"一章中的最新API参考中,"评论"部分也完全缺失.
但是:由于我也非常感兴趣,如果它仍然可能以某种方式获得评论排名信息 - 甚至可能不使用亚马逊API而是竞争对手的API获取评论排名信息 - 我希望有人可以提供有关此主题的一些信息.
我有一个旋转器,里面装满了一个CursorAdapter.现在,当创建该微调器(动态)时,我想将默认选择设置为0(0是CursorAdapter列表中的第一项)
所以我得到了一个在创建对象后调用的作业的setter.但由于某种原因,无论我在该setter中传递什么,0总是被传递给onItemSelected()Spinner中的方法OnItemSelectedListener.
但是,如果我等到第一次初始选择发生并再次运行我的二传手,一切正常.所以,为了使它更清楚,我在调试器中看到的是:
setSelection()方法onItemSelected()是第一次运行,但该方法的位置为0!onItemSelected()运行,这个时间,给出的位置是4,因为它应该是!现在那是有线的.似乎不可能设置该微调器直到第一个初始选择(始终为0)运行.那么为什么它是这样的,我该怎么做才能设置初始选择?
我正在尝试将大约10个文件夹复制到远程文件共享上,每个文件夹包含一个〜3KB .txt文件,延迟时间为几秒.我正在使用Copy-Item像这样的Powershells :
try
{
Copy-Item -Path $source -Destination $destination -Recurse -ErrorAction Stop
}
catch
{
Write-Error $_.Exception.ToString()
}
Run Code Online (Sandbox Code Playgroud)
运行脚本的用户对文件服务器共享和本地源具有读,写和执行权限.
首次运行时,目标文件夹为空.一切正常.第二次运行时,文件和文件夹已存在.因此,在运行上面的代码之前,我首先运行检查Test-Path,如果文件夹存在使用Remove-Item这样的删除:
try
{
if(Test-Path -Path $path -ErrorAction Stop)
{
Remove-Item -Recurse -Path $path -ErrorAction Stop
}
}
catch
{
Write-Error $_.Exception.ToString()
}
Run Code Online (Sandbox Code Playgroud)
没有其他人编辑这些文件.但是,当运行脚本时,偶尔会出现一些我不明白的原因,我在复制时突然收到某些文件夹的UnauthorizedAccessException错误.确切的错误是:
System.UnauthorizedAccessException:access denied ---> System.ComponentModel.Win32Exception:System.Management.Automation.SessionStateInternal.IsItemContainer(CmdletProvider providerInstance,String path,CmdletProviderContext)中的Microsoft.PowerShell.Commands.FileSystemProvider.NativeDirectoryExists(String path)中的访问被拒绝上下文
请注意:在远程文件服务器上的旧文件删除成功完成后,我收到了这些错误.
我正在尝试解密使用非默认AlgorithmIdentifier加密的EnvelopedCms,如下所示:
ContentInfo contentInfo = new ContentInfo(data);
EnvelopedCms envelopedCms = new EnvelopedCms(contentInfo, new AlgorithmIdentifier(new System.Security.Cryptography.Oid("2.16.840.1.101.3.4.1.42")));
CmsRecipientCollection recipients = new CmsRecipientCollection(SubjectIdentifierType.IssuerAndSerialNumber, certificates);
envelopedCms.Encrypt(recipients);
byte[] encryptedData = envelopedCms.Encode();
Run Code Online (Sandbox Code Playgroud)
加密按预期工作.现在,当我尝试解密envelopedCms使用这样的东西时:
EnvelopedCms envelopedCms = new EnvelopedCms();
envelopedCms.Decode(encryptedData );
envelopedCms.Decrypt(certificates);
byte[] decryptedData = envelopedCms.ContentInfo.Content;
Run Code Online (Sandbox Code Playgroud)
我注意到.)对证书的访问需要很长时间(比使用默认的AlgorithmIdentifier时更长)和b.)我收到此错误消息:
System.Security.Cryptography.CryptographicException: Access was denied because of a security violation.
Run Code Online (Sandbox Code Playgroud)
其中,查看失败的来源可能不是问题.任何人都可以使用智能卡获得上述解密代码吗?
// EDIT1请注意,只有在使用的证书放在智能卡上并且如果指定了默认值(3DES)之外的AlgorithmIdentifier时,才会出现此问题,如示例代码中所示.如果使用默认的AlgorithmIdentifier或者未将证书放在智能卡上,一切正常.它本身似乎不是SC问题,因为它使用默认的AlgorithmIdentifier.更确切地说,SC和AES AlgorithmIdentifier的组合引起了问题,但我无法找到可行的解决方案.
// EDIT2演示此问题的完整示例,请阅读评论以获取详细信息:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;
using System.Reflection;
using System.Diagnostics; …Run Code Online (Sandbox Code Playgroud) 所以,当使用ImageButton时
android:background="@drawable/icon"
Run Code Online (Sandbox Code Playgroud)
默认情况下定义每个默认的android按钮附带的焦点/按下效果上的发光缺失.我知道我可能会使用一个选择器在不同的状态下使用不同的图像,但这不是Android所做的,那不是我正在寻找的.
我希望android 在我聚焦/按下时将默认外部发光效果添加到我的图像按钮.我认为(也许它以不同的方式完成,不知道!)android正在使用色调.然而.使用色调选择器并像这样定义:
android:tint="@color/tint_selector"
Run Code Online (Sandbox Code Playgroud)
损坏了我的应用程序.使用静态颜色作为色调不会破坏它但是没有可见的色调.
所以我的问题:
我正在经营一份看起来像这样的工作
$myjob =
{
# regerate some $data
return $data
}
Run Code Online (Sandbox Code Playgroud)
我开始接受这样的工作:
Start-Job -ScriptBlock $myjob -Name "job1"
Wait-Job -Name "job1"
$result = Receive-Job -Job "job1"
Run Code Online (Sandbox Code Playgroud)
现在我希望我$result只包含$data返回的内容.但是,在检查$result除$ data之外的时候,我会看到更多我不希望被包含在我的$data数组中的信息.混乱的数据开始像这样:
(返回的数据:)
State : Running
HasMoreData : True
StatusMessage :
Location : localhost
Command : # regerate some $data
return $data
JobStateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : f7c63b33-d270-4fa8-8042-111edf9d86a6
Id : 270
Name : job1
ChildJobs : {Job271}
PSBeginTime : 03.12.2012 14:06:26
PSEndTime …Run Code Online (Sandbox Code Playgroud) 我正在使用德语PS版本,我正在尝试使用该命令显示powershell v.3.0的主题
Get-Help about_*
Run Code Online (Sandbox Code Playgroud)
这似乎是列出主题的正确命令.我还使用了更新了PS帮助
Update-Help
Run Code Online (Sandbox Code Playgroud)
CMDlet,以防万一有关主题遗失.无论如何:Get-Help cmdlet处理并返回:什么都没有.使用fl格式化输出或将输出保存到变量没有帮助,根本找不到about主题.但是,通常情况下,通配符似乎有效.运行
get-help get-*
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.有任何想法吗?
我正在使用Click来构建一个Python CLI,并遇到了一个问题,即如何在Click中处理异常.
我不确定这里的措辞("子命令","父命令"),但从我的例子中你会得到我希望的想法.我们假设这段代码:
@click.group()
@click.option("--something")
def mycli(something):
try:
#do something with "something" and set ctx
ctx.obj = {}
ctx.obj["somevar"] = some_result
except:
print("Something went wrong")
raise
#only if everything went fine call mycommand
@click.group()
@click.pass_context
def mygroup(ctx):
pass
@mygroup.command(name="mycommand")
@click.pass_context
def mycommand(ctx):
#this only works if somevar is set in ctx so don't call this if setting went wrong in mycli
Run Code Online (Sandbox Code Playgroud)
当应用程序启动时,这称为:
if __name__ == "__main__":
mycli.add_command(mygroup)
mycli()
Run Code Online (Sandbox Code Playgroud)
然后我开始这样的程序:
python myapp --something somevalue mycommand
Run Code Online (Sandbox Code Playgroud)
预期的行为:首先mycli调用它,然后执行其中的代码.如果抛出异常它被except块捕获,则会打印一条消息并引发异常.因为我们没有其他try/except块,所以会导致脚本终止.mycommand …
powershell ×4
android ×2
.net ×1
amazon ×1
android-xml ×1
annotations ×1
c# ×1
cryptography ×1
culture ×1
encryption ×1
java ×1
localization ×1
psobject ×1
python ×1
python-click ×1
spinner ×1
spring ×1
spring-data ×1