.NET Framework提供了几种托管托管运行时的方法.可以使用mscoree.dll的CorBindToRuntime(https://msdn.microsoft.com/library/ms231419 ( v= vs.110 ) .aspx)通过GetDefaultDomain/CreateDomain获取AppDomain的句柄,然后加载程序集,实例化对象并调用mscorlib互操作对象的方法.
此方法现在已声明为过时,但基于CLRCreateInstance(https://msdn.microsoft.com/library/ms164408 ( v= vs.110 ) .aspx)的较新接口提供了类似的功能.在某些时候,可以访问与COM兼容的AppDomain对象,并可以与托管代码进行通信.
然而,CoreCLR(https://www.microsoft.com/net,https://github.com/dotnet/coreclr)丢失mscoree.dll中.允许执行一段CoreCLR托管代码的托管方法在下面描述
http://www.fancy-development.net/hosting-net-core-clr-in-your-own-process
但是ICLRRuntimeHost/ICLRRuntimeHost2接口没有任何方式将数据传递给被调用的托管函数,也无法得到计算结果.因此,该方法仅适用于为副作用调用代码的情况.
在CoreCLR下向托管代码传递数据的方式是什么?
可以使用gtk.TreeViewColumn.set_resizable(True)手动调整列的大小...除了最后一列 - 它总是占用可用空间.
虽然在大多数情况下它是明智的,但我使用TreeView-in-a-ScrolledView,我希望能够缩小/扩展最后一列.
目前我使用以下kludge:
def add_dummy_column(treeview):
def put_dummy_last(treeview, dummy):
columns = treeview.get_columns()
last = next(reversed(columns), None)
if not last or last == dummy:
return
if dummy in columns:
treeview.move_column_after(dummy, last)
else:
treeview.append_column(dummy)
dummy = gtk.TreeViewColumn()
dummy.set_min_width(1)
dummy.set_fixed_width(1)
dummy.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
dummy.set_resizable(False)
dummy.set_expand(False)
treeview.connect('columns-changed', put_dummy_last, dummy)
return dummy
Run Code Online (Sandbox Code Playgroud)
但是,这个虚拟列往往会妨碍:使TreeView列循环复杂化等等.是否有更好/更优雅的解决方案?
更新:它确实有效
在尝试打造一个最小的例子时,我发现它没有我的kludge工作正常.这是没有gtk.ScrolledWindow的最小示例:
import gtk
window = gtk.Window()
window.connect('destroy', lambda *args: gtk.main_quit())
vbox = gtk.VBox()
window.add(vbox)
table = gtk.TreeView(gtk.ListStore(str, str, str))
for i in range(3):
column = gtk.TreeViewColumn('Column {}'.format(1 + i))
column.set_resizable(True) …Run Code Online (Sandbox Code Playgroud) 我刚刚成功遵循AWS EKS 入门指南,现在我拥有了由 3 个工作节点组成的可运行 Kubernetes 集群。
工作节点 EC2 实例具有自动分配的公共 IP:
IPv4 Public IP: 18.197.201.199
Private IPs: 192.168.180.57, 192.168.148.90
Secondary private IPs: 192.168.170.137, 192.168.180.185, 192.168.161.170, 192.168.133.109, 192.168.182.189, 192.168.189.234, 192.168.166.204, 192.168.156.144, 192.168.133.148, 192.168.179.151
Run Code Online (Sandbox Code Playgroud)
为了连接到 AWS 之外的私有资源,防火墙规则要求节点公共 IP 来自特定的弹性 IP 池。(更具体地说,工作节点必须访问企业防火墙后面的私有 Docker 注册表,该注册表将多个 AWS 弹性 IP 列入白名单。)最简单的似乎是使用预定义的弹性 IP 覆盖自动分配的公共节点 IP;但是,AWS 只允许将弹性 IP 与特定的私有 IP 关联。
如何继续将自动分配的公共 IP 替换为弹性 IP?
.net ×1
amazon-eks ×1
coreclr ×1
gtktreeview ×1
interop ×1
kubernetes ×1
managed ×1
pygtk ×1
python ×1
unmanaged ×1