小编KFL*_*KFL的帖子

如何通过PowerShell中的属性名称获取对象的属性值?

在PowerShell中,如何通过指定对象的名称(字符串)来获取对象的属性值?我想要以下内容:

$obj = get-something

# View the object's members:
$obj | gm

# I could retrieve a property by doing so:
write-host $obj.SomeProp

# But for many purposes, I would really want to:
write-host $obj | Get-PropertyByName "SomeProp"
Run Code Online (Sandbox Code Playgroud)

在PowerShell中有类似"Get-PropertyByName"的东西吗?

powershell

108
推荐指数
5
解决办法
25万
查看次数

Node.js:检查事件循环中剩下的是什么阻止脚本自然退出

如果主事件循环中还有回调,Node.js脚本将不会退出.虽然可以通过调用process.exit()或抛出异常来强制终止脚本,但建议通过始终进行适当的清理来让脚本"自然地"终止.但是,这有时可能很困难,因为代码中的错误可能会阻止正确的清理,例如,我可能忘记在不再需要时删除IntervalObject等,这最终会阻止程序终止.

因此,有没有办法调试非终止脚本以找出事件循环中剩余的内容?换句话说,Node.js中是否有一种方法可以调试阻止程序退出的内容?

node.js

51
推荐指数
2
解决办法
6329
查看次数

在WPF窗口中托管外部应用程序

我们正在开发WPF中的布局管理器,其具有可由用户移动/调整大小/等的视口.视口通常通过布局管理器中我们控制的提供程序填充数据(图片/电影/等).我的工作是检查它是否也可以在视口中托管任何外部Windows应用程序(即记事本,计算,土坯阅读器等).我遇到了一些问题.

大多数资源都指向使用HwndHost类.我正在试验微软本身的演练:http://msdn.microsoft.com/en-us/library/ms752055.aspx

我已经对此进行了调整,因此列表框将替换为外部应用程序的Windows句柄.任何人都可以帮我解决这些问题:

  1. 演练添加了一个额外的静态子窗口,其中ListBox放置了该子窗口.我不认为我需要外部应用程序.如果我省略它,我必须使外部应用程序成为子窗口(使用来自user32.dll的Get/SetWindowLong设置GWL_STYLEWS_CHILD).但是,如果我这样做,应用程序的菜单栏消失(因为WS_CHILD样式),它不再接收输入.
  2. 如果我确实使用子窗口,并使外部应用程序成为合理的工作的孩子,但有时外部应用程序不能正常工作.
  3. 此外,我需要子窗口调整大小到视口.这可能吗?
  4. 当exernal应用程序生成子窗口(即记事本 - >帮助 - >关于)时,此窗口不由托管HwndHost(因此可以移动到视口外).有什么办法可以阻止吗?
  5. 由于我不需要外部应用程序和布局管理器之间的进一步交互,我是否正确地假设我不需要捕获和转发消息?(演练将HwndSourceHook添加到子窗口以捕获列表框中的选择更改).
  6. 当您运行(未修改的)示例VS2010并关闭窗口时,VS2010看不到程序已结束.如果你打破所有,你最终会在没有来源的情况下进行组装.有点臭,但我找不到.
  7. 演练本身似乎非常草率编码,但我没有找到关于这个主题的更好的文档.还有其他例子吗?
  8. 另一种方法是不使用HwndHost,但WindowsFormHost作为讨论在这里.它工作(并且更简单!)但我无法控制应用程序的大小?另外,WinFormHost真的不是这个意思吗?

感谢您指出正确的方向.

c# wpf winapi hwndhost

38
推荐指数
3
解决办法
4万
查看次数

Python列表乘法:[[...]]*3使3个列表在修改时相互镜像

为什么会这样?我真的不明白:

>>> P = [ [()]*3 ]*3
>>> P
[[(), (), ()], [(), (), ()], [(), (), ()]]
>>> P[0][0]=1
>>> P
[[1, (), ()], [1, (), ()], [1, (), ()]]
Run Code Online (Sandbox Code Playgroud)

python list multiplication

35
推荐指数
4
解决办法
2万
查看次数

PowerShell:上次执行结果是否有自动变量?

我正在寻找一个与Python交互式shell的"_"变量相当的功能.在PowerShell中我想要这样的东西:

> Get-Something # this returns an object and display it to the output.
# Now I want to assign that object to some variable
> $anObj = ???
Run Code Online (Sandbox Code Playgroud)

powershell

30
推荐指数
4
解决办法
2万
查看次数

Json.NET是否缓存类型的序列化信息?

在.NET世界中,当谈到对象序列化时,它通常用于在运行时检查对象的字段和属性.对此作业使用反射通常很慢,并且在处理大量对象时是不合需要的.另一种方法是使用IL发射或构建表达树,这些表现树相对于反射提供显着的性能增益.而后者是处理序列化时最现代化的库.但是,在运行时构建和发送IL需要花费时间,并且只有在将此信息缓存并重用于相同类型的对象时才会回收投资.

当使用Json.NET时,我不清楚使用上述哪种方法,如果确实使用了后者,是否使用了缓存.

例如,当我这样做时:

JsonConvert.SerializeObject(new Foo { value = 1 });
Run Code Online (Sandbox Code Playgroud)

Json.NET是否构建了Foo的成员访问信息并缓存以便以后重用它?

c# serialization json expression-trees json.net

24
推荐指数
1
解决办法
4832
查看次数

当有IEnumerator <T>时,为什么IEnumerable <T>是必要的?

免责声明:我明白之间的差别IEnumerable<T>,并 IEnumerator<T>和如何使用这两种.这与不重复.

这更像是一个设计问题 - 因为IEnumerator<T>已经封装了可以枚举的所有必要信息(.Current,.MoveNext()),那么引入一个type(IEnumerable<T>)的目的是什么呢?它的唯一目的是返回前者的实例?

再具体一点:

  1. 为什么不能foreach设计为直接迭代IEnumerator<T>,如下所示:

    // foreach (var e in anEnumerator) { //... }
    while (anEnumerator.MoveNext())
    {
        doSomething(anEnumerator.Current);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为什么不能直接建立Linq IEnumerator<T>

.net c# oop

20
推荐指数
1
解决办法
1318
查看次数

在PowerShell中使用.NET集合(ArrayList,List,..)的问题

我刚刚意识到这一点,我已经很难学会了,所以我想分享一下.考虑您有以下字符串列表:

>$list = New-Object -TypeName System.Collections.Generic.List[string]
>$list.Add("x")
>$list.Add("yy")
>$list.Add("zzz")
>$list
x
yy
zzz
Run Code Online (Sandbox Code Playgroud)

现在,如果您想获取列表中的项目数,您将访问.Count属性,它会按预期为您提供"3".

>$list.Count
3
Run Code Online (Sandbox Code Playgroud)

但是,有时候你会通过访问.Length而不是.Count来搞错.在其他语言中,如Python或C#,您会收到一条错误消息,指出此属性不可用.但是在PowerShell中,事实证明,如果在该对象上找不到它,它会遍历包含的对象并访问它们上的属性.所以你最终得到了一个Lengthes列表!惊喜!

>$list.Length
1
2
3
Run Code Online (Sandbox Code Playgroud)

你甚至可以调用方法!

>$list.ToUpper()
X
YY
ZZZ
Run Code Online (Sandbox Code Playgroud)

请注意,正如我所尝试的,此"功能"也适用于System.Collections.ArrayList.但它不适用于PowerShell的内置数组类型.

这个"功能"叫什么?为什么这样设计呢?这非常令人惊讶且容易出错.

powershell

17
推荐指数
1
解决办法
1万
查看次数

如何在应用程序中配置所有记录器

Python的日志记录模块允许模块或类定义自己的记录器.不同的记录器可以有不同的处理程序.他们中的一些人可能选择登录文件,而有些人则选择登录,例如stdout.

现在,我的应用程序使用了其中几个模块,每个模块都有自己的记录器,这些记录器具有各种处 我可以统一日志记录行为,以便所有日志都转到我指定的日志文件吗?换句话说,有没有办法从一个地方同时将.config()所有记录器的处理程序?

python logging

13
推荐指数
2
解决办法
6015
查看次数

Python中最简洁的方法是使用同一属性对对象列表进行分组和求和

我有一个C类型的对象列表,其中类型C由属性X,Y,Z组成,例如,cX,cY,cZ

现在我想执行以下任务:

  • 对属性Y具有相同值的那些对象的属性Z求和
  • 输出元组列表(Y,Z与此Y的总和)

什么是最简洁的方式?

python

12
推荐指数
3
解决办法
8705
查看次数