class 的 C# 文件相对路径
C# File Relative Path to a class
我有一个 C# class 文件,它将被打包为一个 class 库。在 class 库项目中,我有一个名为 XSL 的文件夹,在这个文件夹中我有一些 XSL 文件。我执行 XSL 验证的 C# class 位于不同的命名空间中。我如何从不同的名称空间引用 XSL 文件夹,其中我有 class 想要使用 XSL 文件进行 XSL 验证?
如果文件嵌入到程序集中,您可以使用 Assembly.GetManifestResourceStream(String)
方法获取它们的内容 (Stream
)。
所以:
Assembly a = Assembly.GetExecutingAssembly(); //get access to the current assembly.
Stream s = a.GetManifestResourceStream("xslt.file1");
//process stream s
如果它是第三方程序集(class 库),您可以通过从该路径创建一个 Assembly
实例来加载它:
Assembly a = Assembly.LoadFrom("file.dll");
这当然只适用于具有可解释版本的 .NET 程序集。所以不要用它来加载由 C 编译器生成的 .exe
。
每个资源都以点分隔的路径存储,例如"MyCompany.MyProduct.MyDirectory.MyFile.xslt"
我有一个 C# class 文件,它将被打包为一个 class 库。在 class 库项目中,我有一个名为 XSL 的文件夹,在这个文件夹中我有一些 XSL 文件。我执行 XSL 验证的 C# class 位于不同的命名空间中。我如何从不同的名称空间引用 XSL 文件夹,其中我有 class 想要使用 XSL 文件进行 XSL 验证?
如果文件嵌入到程序集中,您可以使用 Assembly.GetManifestResourceStream(String)
方法获取它们的内容 (Stream
)。
所以:
Assembly a = Assembly.GetExecutingAssembly(); //get access to the current assembly.
Stream s = a.GetManifestResourceStream("xslt.file1");
//process stream s
如果它是第三方程序集(class 库),您可以通过从该路径创建一个 Assembly
实例来加载它:
Assembly a = Assembly.LoadFrom("file.dll");
这当然只适用于具有可解释版本的 .NET 程序集。所以不要用它来加载由 C 编译器生成的 .exe
。
每个资源都以点分隔的路径存储,例如"MyCompany.MyProduct.MyDirectory.MyFile.xslt"