代码之家  ›  专栏  ›  技术社区  ›  Jens Granlund

进程内SXS在托管代码中为shell扩展打开?

  •  5
  • Jens Granlund  · 技术社区  · 14 年前

    以前的建议是 "Do not write in-process shell extensions in managed code."

    但使用.NET Framework 4和 In-Process Side-by-Side 应该解决不在托管代码中编写shell扩展的主要原因。

    这么说,我有三个问题。

    1. 现在可以用托管代码编写shell扩展了吗?
    2. 在托管代码中编写shell扩展可能存在哪些问题(如果有的话)?
    3. 在非托管代码中编写shell扩展的原因是什么?
    3 回复  |  直到 14 年前
        1
  •  2
  •   Daniel Plaisted    14 年前

    现在可以用.NET 4托管代码编写shell扩展。您仍然应该避免在.NET 3.5或更早版本中编写shell扩展,因为这些早期版本不支持并行处理。

        2
  •  6
  •   dude    14 年前

    查看此msdn文章: 使用.NET Framework 4(c,vb.net)编写Windows Shell扩展-第1部分 http://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows-shell-extension-with-net-framework-4-c-vb-net-part-1.aspx

        3
  •  3
  •   logicnp    14 年前
    1. 是的,没关系。
    2. 一个巨大的问题和占用时间的因素是需要在托管代码中声明的大量shell接口、函数、结构等。您必须非常小心,因为即使单个参数的一个错误声明也可能导致放大、访问冲突、内存泄漏以及不需要数小时才能跟踪的情况。
    3. 唯一的原因是如果您喜欢或被迫使用非托管语言。

    退房 EZNamespaceExtensions.Net 这消除了上述2,以及开发一般命名空间扩展(无论是托管还是非托管)所需的时间。