有人可以向我解释以下代码行吗?
dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
string path = System.IO.Path.GetDirectoryName(filePath);
string fileName = System.IO.Path.GetFileName(filePath);
dynamic directory = shellApplication.NameSpace(path);
dynamic link = directory.ParseName(fileName);
dynamic verbs = link.Verbs();
我搜索了msdn库,但无法理解它的作用。
这不是完整的代码,但我承诺其余的,只是这部分我正在努力。
答案 0 :(得分:4)
这会创建"Shell.Application"
COM对象,然后使用dynamic
来调用它上面的方法。
它获取可以在文件上调用的所有动词。
答案 1 :(得分:4)
看起来它正在检索与特定程序关联的shell操作。例如,打开,打印,编辑等
打开注册表并导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ textfile
将其展开并查看Shell密钥。代码应该返回类似的动词。
答案 2 :(得分:1)
要扩展Aliostad的答案,C#中的dynamic
关键字允许您调用未知类型的成员和方法。这意味着使用dynamic
变量,您将无法获得智能感知,因为编译器不知道变量实际具有哪些成员或方法。这一切都在运行时计算出来。