在c#

时间:2017-04-30 11:02:46

标签: c# unity3d

我正在使用Unity 3D引擎。它的API位于UnityEngine.dll中。 有没有办法阻止/禁止/确保某些API方法无法使用?它包含一些其他团队成员不应该在我的项目中使用的方法,即使他们不小心尝试。这可以在C#中完成吗?

更新:我无权访问该库的代码。

2 个答案:

答案 0 :(得分:1)

要做的一件事可能是为您的团队成员提供一个facade DLL,该DLL只会公开“允许”的内容。方法

答案 1 :(得分:1)

您可能会编写某种分析器来检查脚本是否禁止API调用。选项:

  • 通过迭代MonoScript类型的所有资产来分析源代码,并使用Regex测试识别规则违规(只要您只查找特定方法,但不准确,便于实施)
  • 分析IL级别的编译代码(准确但难以实现)

然后您可以自动调用此分析器:

  • 使用DidReloadScripts属性
  • 进行每次编译后
  • 使用PostProcessBuildAttribute
  • 进行每次构建后

我不确定是否有办法在后期处理过程中使构建失败,但是在检测到规则违规时可能会抛出异常会执行此操作。