小编Wil*_*iam的帖子

动态地在C#中实例化遗留COM对象(使用其在字符串中的ID)

在Python中,当我想使用这个COM对象时,我所做的只是win32com.client.Dispatch("Myapp.Thing.1")它给了我一个对象,我可以调用方法等等.

我想在C#中做到这一点,令人震惊的是,我似乎无法弄清楚如何.我希望使用这些自动生成的COM包装之一,其原因我不能进入.我需要做晚期绑定,过去的动态COM.

我试过这样做,但是在调用调用时我得到了Null Ref Exception.

Type t = Type.GetTypeFromProgID("Myapp.Thing.1")
o = Activator.CreateInstance(t) 
t.GetMethod("xyz").Invoke(o, args) 
Run Code Online (Sandbox Code Playgroud)

任何能够通过其名称加载COM对象并以某种基本方式使用它的示例代码都是理想的.

c#

6
推荐指数
2
解决办法
6149
查看次数

如何在node.js中创建一个缓存,该缓存显式处理CPU绑定操作的同时重复请求

所以节点对我来说很有用.我有一个非常特定的服务器应用程序,它基本上接受执行特定CPU绑定过程的请求,并执行一个C程序来执行此操作.事实是,如果我有多个客户端,我很可能会得到同一请求的多个版本.通过在特定键上实现具有锁定功能的缓存,以某种方式显式处理它将是一个很好的优化,以便其他客户端只需等待该请求返回,并复制其响应.

但我是节点的新手,所以我不知道如何将其安装到我的基本节点路由器请求处理程序机制中.显然我可以使用基本并发原语在语言x中完成它,但我知道该节点是面向事件的,我认为这可以通过一种非常优雅的方式完成.想法?

node.js

5
推荐指数
2
解决办法
1732
查看次数

如何从函数返回新数据作为参考而没有借阅检查器问题?

我正在编写一个函数,该函数接受一个整数并返回该整数乘以2、5的向量。我认为这看起来像:

fn foo(x: &i64) -> Vec<&i64> {
    let mut v = vec![];
    for i in 0..5 {
        let q = x * 2;
        v.push(&q);
    }
    v
}

fn main() {
    let x = 5;
    let q = foo(&x);
    println!("{:?}", q);
}
Run Code Online (Sandbox Code Playgroud)

借阅检查器很麻烦,因为我定义了一个新变量,它在堆栈上分配,并在函数末尾超出范围。

我该怎么办?当然,如果没有编写可以创建新数据的函数,我将一生难忘!我知道有BoxCopy类型的解决方法,但我对惯用的Rust解决方案感兴趣。

我知道我可以返回a,Vec<i64>但是我认为这会遇到相同的问题吗?主要尝试针对一般问题提出一个“集合式”问题:)

rust

3
推荐指数
1
解决办法
170
查看次数

标签 统计

c# ×1

node.js ×1

rust ×1