c# - API 或框架是如何制作的,所以脚本可以使用它们的功能但您看不到代码?
问题描述
我想知道如何像某个 API 一样进行编程,我已经编写了一个算法,我想发布以便人们可以使用它,但我不希望人们看到代码并窃取它?偏执狂,我知道,但仍然如此。
那是怎么做的,所以例如我可以在 C# 脚本中(API 也可以用 C# 编写),包含它(使用 ApiName)并使用里面的函数,例如,如果 API 有一个我喜欢的函数“void Calculate(float x, float y)”,然后从脚本中调用“Calculate(100, 200)”。我知道这在某种程度上是可能的,因为 Windows API 等。创建一个类库也是一样的吗?
解决方案
在任何代码运行之前,它要么被编译要么被解释为二进制文件。这是高度简化的,但这是一般的想法。只要库或 API 提供类似函数名称的接口,实现本身就可以编译并且仍然可以工作。
对于 C#,NuGet 是一个很好的示例,您可以创建代码的 NuGet(请参阅https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package),其中公共函数和方法签名将可见且可用,但将编译实现。DLL 以类似的方式工作。您可以引用它们并调用它们的公共成员但看不到代码,除非您使用工具来反编译它们。
推荐阅读
- powershell - 将 Excel 转换为 csv UTF-8 脚本问题
- python - 从列表列表中,我如何找到具有 n 个共同元素的列表
- vue.js - 如何删除 v-expansion-panels 中的图标(vuetify)
- c# - 使用 Entity Framework Core 为 ExecuteSqlCommand() 在 SQL 中声明变量
- c# - 通过起点、终点和高度计算 3D 轨迹
- javascript - 回调函数ajax,JS
- java - Spring Boot App - Web 服务器无法启动。端口 8092 已被使用
- typescript - “GlobalEventHandlers”类型上不存在属性“classList”。在打字稿中
- reactjs - 点击后世博按钮不做任何事情
- css - 我对 react-nice-ticker 包的 css 进行了一些更改,但是当我部署代码时,我的所有更改都会覆盖