asp调用asp.net生成的动态链接库
来源:互联网 发布:男士网红淘宝店铺 编辑:程序博客网 时间:2024/06/05 07:56
这几天在做一些asp的工作,发现这个语言真的很不好用,业务处理能力太差了,难怪微软急忙推出asp.net来作为它的替代品。可是asp作为一个流行这么多年的语言,已经占据不少的市场份额,asp.net作为一个全新的平台和asp很不一样难做移植,那我们能不能用asp直接调用.net的库呢,下面来展示一个可行的解决方案:
A,首先用VS2010新建一个C#类库项目,我们在里面定义一个测试类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace ClassLibrary1{ [ComVisible(true)] //对com可见 [ClassInterface(ClassInterfaceType.AutoDual)] //对com公开 public class Class1 { public string combine(string a, string b) { return a + b; } }}//ClassInterfaceType的选择可以参照下面链接的说明,我这里尽量简化代码//http://archive.cnblogs.com/a/1527632/B,打开开始菜单中Visual Studio 命令提示(2010)工具
C:\>sn -k c:\myKey.snk
创建签名文件myKey.snk,然后在C#项目上右键,点击属性,选择签名,选中为程序集签名,选择myKey.snk文件,运行项目生成dll文件
在命令提示工具里面切换到dll所在目录
F:\nsp>tlbexp ClassLibrary1.dll /out:ClassLibrary1.tlbMicrosoft (R) .NET Framework Assembly to Type Library Converter 4.0.30319.1Copyright (C) Microsoft Corporation. All rights reserved.Assembly exported to 'F:\nsp\ClassLibrary1.tlb'F:\nsp>regasm ClassLibrary1.dll /tlb ClassLibrary1.tlb /codebaseMicrosoft(R) .NET Framework 程序集注册实用工具 4.0.30319.1版权所有(C) Microsoft Corporation 1998-2004。保留所有权利。成功注册了类型成功注册了导出到“F:\nsp\ClassLibrary1.tlb”的程序集和类型库F:\nsp>gacutil /i ClassLibrary1.dllMicrosoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1版权所有(C) Microsoft Corporation。保留所有权利。程序集已成功添加到缓存中F:\nsp>执行上面的一组操作,分别生成tlb类型库文件,导入注册表(此时dll可以作为com使用),将dll程序集加到GAC(全局程序集缓存)
C,创建一个test.asp文件,输入如下代码
<% set s = CreateObject("ClassLibrary1.Class1") Response.Write(s.combine("Hello","World"))%>
打开浏览器或者运行IDE查看,字符串已经被拼接起来。
如上面那个链接中说,在产品里面用ClassInterfaceType.AutoDual并不好,具体原因我不是很理解,我们可以像下面一样实现一个接口
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace ClassLibrary1{ interface IClass1 { string combine(string a, string b); } [ComVisible(true)] //对com可见 [ClassInterface(ClassInterfaceType.None)] //对com公开 public class Class1:IClass1 { public string combine(string a, string b) { return a + b; } }}剩下的步骤和B一样,不论怎样,能在功能简单的asp里面调用asp.net封装的dll还是感觉很好,不过不知道服务器是否还需要.net framework的支持。
- asp调用asp.net生成的动态链接库
- asp.net下调用Matlab生成动态链接库
- asp.net下调用Matlab生成动态链接库
- [Asp.net]生成dll(动态链接库)
- ASP.net/C#中如何调用动态链接库DLL
- ASP调用.Net编写的动态库
- asp.net :后台调用js ,repeater,动态参数,动态链接
- asp,vb 调用vb动态链接库
- asp.net中动态链接的实现
- asp.net 动态生成导航的方法
- ASP.NET动态生成GridView的使用
- asp.net在表格中动态生成一个可以链接到另外一个页面的图片
- ASP调用.Net编写的动态库(DLL)
- asp调用.net生成缩略图
- 动态生成asp.net控件
- 动态生成asp.net控件
- 动态生成asp.net控件
- asp.net动态生成TreeView
- winsock之基础函数
- UML类图与类的关系详解
- Android触摸屏校准方法
- DMP文件的生成和使用
- 数值和ASCII之间的转换,ASCII转16进制
- asp调用asp.net生成的动态链接库
- 浅尝Mina
- Android图片处理(Matrix,ColorMatrix)
- asp.net自定义错误页面
- 【心灵鸡汤】@2012-06-14
- python连接mysql报错
- Flex4中list与itemRenderer项目渲染器中子对象之间访问
- x264中16x16运动搜索过程(转)
- Bean Validation 规范内嵌的约束注解定义