您将在c#中写一个dll而不是没有命名空间。
我会编写一个类然后将其转换为dll,即c#默认库类型是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace temp
{
public class c1
{
public static string f1(string deger) {
return deger.ToUpper() + " 333 ";
}
}
}
现在我将编写此代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class c1
{
public static string f1(string deger) {
return deger.ToUpper() + " 333 ";
}
}
是运行时的twou代码相同
答案 0 :(得分:2)
然后这个类将在.NET未命名的全局命名空间(不在汇编根命名空间中)。它可以从任何地方访问“global :: c1”或只是“c1”
答案 1 :(得分:1)
通过将此代码转换为DLL,我认为您的意思是编译为库。命名空间(或缺少)在这方面没有特殊效果。
如果要在不引用dll的情况下引用此类,则需要动态加载dll。
示例:
Assembly a = Assembly.LoadFrom("mylibrary.dll");
您的下一个问题是反映并使用该课程。通常你会有一个定义一些接口或接口的库。
InterfaceLibrary.dll包含接口IC1
PluginLibrary.dll包含实现IC1的类C1
的Program.exe
程序和插件库都引用了接口库。该程序可以动态加载PluginLibrary并查找实现IC1
的类。
以下是C#中插件架构的更深入的示例:https://stackoverflow.com/a/829828/360211