XSL引用DLL里面的函数问题
最近在做一个项目,要在XSL文件里面调用C#写的一个DLL里面的函数
假设XSL文件跟DLL在一个路径下,调用DLL里面的Logic.Usp下的GetName()函数其中Logic是命名空间,Usp是类名
最好能给出一个例子,谢谢您能帮忙。
[解决办法]
1. 封装.net的assembly
定义一个接口,一个实现类。接口是为了导出TLB用的。
给COM公开的方法都要加上[ComVisible(True)]的特性
- C# code
using System.IO;using System.Runtime.InteropServices;namespace CSCOMLib{ [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] [ComVisible(true)] public interface IDirectory4COM { string[] GetAllFiles(string directory); bool IsExistsDir(string directory); } [Guid("9E5E5FB2-219D-4ee7-AB27-E4DBED8E123E"),ClassInterface(ClassInterfaceType.None)] [ComSourceInterfaces((typeof(IDirectory4COM)))] [ComVisible(true)] public class Directory4COM : IDirectory4COM { [ComVisible(true)] public string[] GetAllFiles(string directory) { return Directory.GetFiles(directory); } [ComVisible(true)] public bool IsExistsDir(string directory) { return Directory.Exists(directory); } }}