C# 怎么写dll 外人·调用只能看到接口,看不到函数
时间: 2024-10-20 16:05:50 浏览: 20
C#中加载dll并调用其函数的实现方法
在C#中,如果你想要创建一个只暴露接口供外部程序调用的DLL(动态链接库),通常会使用接口(Interface)或者抽象类(Abstract Class)。以下是步骤:
1. 创建接口(Interface):
```csharp
using System;
interface IMyService
{
void SayHello();
}
```
这里定义了一个名为`IMyService`的接口,仅有一个方法`SayHello()`。
2. 实现接口:
```csharp
public class MyClass : IMyService
{
public void SayHello()
{
Console.WriteLine("Hello from MyClass!");
}
}
```
`MyClass`实现了`IMyService`接口,并提供了具体的实现。
3. 编辑项目设置:
将`MyClass`添加到引用列表,并将其设置为`InternalsVisibleTo`属性的一部分,允许其他项目访问内部类。例如,在`AssemblyInfo.cs`文件中添加:
```csharp
[assembly: InternalsVisibleTo("YourOtherProject")]
```
这将使`YourOtherProject`能够看到`MyClass`,但不会看到其实现细节。
4. 创建DLL:
生成包含接口的DLL,外部项目可以通过接口来调用方法而无需关心其实现细节。
5. 外部调用:
在另一个项目中,你可以这样做:
```csharp
using YourLibraryNamespace;
...
IMyService service = new MyClass(); // 通过接口实例化
service.SayHello(); // 调用接口方法
```
阅读全文