C#生成COM组件
1.类库代码
1.1暴露的方法必须以接口的方式实现
1.2类需要GUID编号
using System;
using System.Runtime.InteropServices; //COM组件
namespace PayCls
{
[Guid("051A5FA3-E34E-4DFF-AF77-BA6D6277A132")]
public interface IPay
{
string Init(string strJson);
} [ClassInterface(ClassInterfaceType.None)]
[Guid("B88176F4-33E9-4C9B-807F-5AB3E25A0CF6")]
[ProgId("Pay.Application")]
public class Pay: IPay
{
public string Init(string strJson)
{
string result = "";
Decive dev = new Decive(); try
{
result = dev.Run(strJson);
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
}
}
2.在类库项目右键---属性---程序集信息 "使程序集可见" 打勾
3.生成---"为COM互操作注册"打勾
4.签名---”为程序集签名"打勾,选择强名称密钥文件 创建。可不输密码
5.生成dll后需要用gacutil与RegAsm加载并注册程序集,注意该dll所引用的其他dll都必须要加载并注册:
E:\Tools\gacutil.exe /i Pay.dll
E:\Tools\gacutil.exe /i Newtonsoft.Json.dll
E:\Tools\gacutil.exe /i RestSharp.dll
E:\Tools\gacutil.exe /i Log4net.dll
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe Pay.dll
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe Newtonsoft.Json.dll
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe RestSharp.dll
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe Log4net.dll
6.log4net读取配置文件:
string configFile = $@"{Environment.CurrentDirectory}\log4net.config";
log4net.Config.XmlConfigurator.Configure(new FileInfo(configFile));
C#生成COM组件的更多相关文章
- 关于动态生成data组件
/*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...
- 使用form-create动态生成vue组件
使用form-create动态生成vue自定义组件和嵌套表单组件 [github] | [说明文档] 示例 let rule = [ { type:'row', children:[ { type:' ...
- 自动生成查找组件的lua代码
本篇主要解决的问题是使用lua脚本编写unity业务逻辑时,自动生成一些查找组件及绑定控件事件的lua代码! 现在很多unity项目都是用ulua作为热更新解决方案,因此需要用lua来写相关的逻辑,经 ...
- 解放生产力,自动化生成vue组件文档
一.现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么 ...
- vite插件-自动生成vue组件文档
特点 支持热更新 快速启动,依赖于 vite,无需另起服务 自动生成组件导航 ui 采用了vant-ui的样式 核心方法覆盖率达到了 92.86% 使用 yarn add vite-plugin-vu ...
- 解析Markdown文件生成React组件文档
前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...
- 使用dumi生成react组件库文档并发布到github pages
周末两天玩了下号称西湖区东半球最牛逼的react文档站点生成工具dumi,顺带结合github pages生成了react-uni-comps文档站, 一套弄下来,感觉真香,现在还只是浅尝,高级的特性 ...
- 04 vue-cli 脚手架、webpack-simple模板项目生成、组件使用
alice https://www.cnblogs.com/alice-bj/p/9317504.html https://www.cnblogs.com/alice-bj/p/9318069.htm ...
- 从零开始写一个npm包,一键生成react组件(偷懒==提高效率)
前言 最近写项目开发新模块的时候,每次写新模块的时候需要创建一个组件的时候(包含组件css,index.js,组件js),就只能会拷贝其他组件修改名称 ,但是写了1-2个后发现效率太低了,而且极容易出 ...
随机推荐
- MySQL架构备份
MySQL Replication 概述 集群的主要类型? 高可用集群(High Available Cluster, HA) 高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障 ...
- Linux安装NodeJS
Linux中安装nodejs 去官网下载和自己系统匹配的文件: 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ ...
- Mac下查看node等的安装路径
- laravel 配置MySQL读写分离
前言:说到应对大流量.高并发的解决方案的时候,总会有这样的回答,如:读写分离,主从复制...等,数据库层今天先不讨论,那么今天我们就来看看怎么在应用层实现读写分离. 框架:laravel5.7(所有配 ...
- c do{}while(0)
1 goto bool foo(){ int *p = (int*)malloc(5*sizeof(int)); bool bOk = true;//执行并处理错误 if(!fun1()) goto ...
- MUI框架 按钮点击响应不好的问题解决办法
MUI框架 按钮点击响应不好的问题 实际例子: $(function (){ mui(document.body).on('tap', '.bindchk', function(e) { //触发一次 ...
- Unity Technologies-提供全面的技术支持服务
Unity Technologies-提供全面的技术支持服务 在收费服务是由Unity大华区面向研发企业推出的一项技术支持服务,以全中文的方式进行,为研发团队解答在使用Unity引擎过程中遇到的各类问 ...
- WebApi返回类型设置为json的三种方法
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
- :focus-within伪类选择器的3种应用
1.点击form里任意input隐藏form以外内容提高用户体验 <form><input type="text"></form> form { ...
- Python核心编程笔记 第三章
3.1 语句和语法 3.1.1 注释( # ) 3.1.2 继续( \ ) 一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...