4

我正在慢慢构建一个跨多个应用程序使用的代码库。一些代码正在处理图像和预先存在的消息格式(从 C++ 转换),因此需要不安全的代码。

为什么我通常不应该在同一个库程序集中混合不安全和安全的代码,而不是我必须这样做的任何原因?

换句话说:我应该维护一个纯粹安全的库并将不安全的代码收集到不同的库中吗?

我很欣赏“不安全”库需要考虑的信任问题,但由于这些功能对我的大多数应用程序都至关重要,这真的很重要吗?我的所有代码(安全和不安全)要么受信任,要么不受信任,我的应用程序将无法运行。还是我错过了重点?

4

1 回答 1

4

理论上你可以用安全代码开发你需要的东西,但是让我们假设你有充分的理由使用不安全代码:)

在您运行不安全代码的代码部分中,您可能会忘记释放内存等......所以如果您管理好内存,您应该不会有问题。当您有一个使用 COM+ dll 的 C# 项目时,您一直都在这样做。在您的情况下更好,因为您拥有所有代码,因此如果您能够检测到它,您可以修复任何内存泄漏。

如果您将所有不安全代码收集在单独的库中

优点

  • 您可以在未来创建一个新的安全库
  • 如果您在执行日志上看到该 dll 失败,您将能够更容易地隔离问题的根源。

缺点

  • 如果您必须以不自然的方式拆分安全/不安全代码,则代码的可读性最差。

所以说实话,决定是你的。如果我是你,我会将不安全代码拆分到不同的项目中,以便在需要时能够将其替换为安全代码。

于 2012-06-20T10:37:10.567 回答