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组件的更多相关文章

  1. 关于动态生成data组件

    /*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...

  2. 使用form-create动态生成vue组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 [github] | [说明文档] 示例 let rule = [ { type:'row', children:[ { type:' ...

  3. 自动生成查找组件的lua代码

    本篇主要解决的问题是使用lua脚本编写unity业务逻辑时,自动生成一些查找组件及绑定控件事件的lua代码! 现在很多unity项目都是用ulua作为热更新解决方案,因此需要用lua来写相关的逻辑,经 ...

  4. 解放生产力,自动化生成vue组件文档

    一.现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么 ...

  5. vite插件-自动生成vue组件文档

    特点 支持热更新 快速启动,依赖于 vite,无需另起服务 自动生成组件导航 ui 采用了vant-ui的样式 核心方法覆盖率达到了 92.86% 使用 yarn add vite-plugin-vu ...

  6. 解析Markdown文件生成React组件文档

    前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...

  7. 使用dumi生成react组件库文档并发布到github pages

    周末两天玩了下号称西湖区东半球最牛逼的react文档站点生成工具dumi,顺带结合github pages生成了react-uni-comps文档站, 一套弄下来,感觉真香,现在还只是浅尝,高级的特性 ...

  8. 04 vue-cli 脚手架、webpack-simple模板项目生成、组件使用

    alice https://www.cnblogs.com/alice-bj/p/9317504.html https://www.cnblogs.com/alice-bj/p/9318069.htm ...

  9. 从零开始写一个npm包,一键生成react组件(偷懒==提高效率)

    前言 最近写项目开发新模块的时候,每次写新模块的时候需要创建一个组件的时候(包含组件css,index.js,组件js),就只能会拷贝其他组件修改名称 ,但是写了1-2个后发现效率太低了,而且极容易出 ...

随机推荐

  1. [NOI2017]泳池

    题目描述 有一个长为\(n\),高为1001的网格,每个格子有\(p\)的概率为1,\((1-p)\)的概率0,定义一个网格的价值为极大的全一矩形,且这个矩形的底要贴着网格的底,求这个网格的价值为\( ...

  2. java中getAttribute与getParameter方法的区别

    知识点1:getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为object对象类型 例: r ...

  3. UVA - 11427 Expect the Expected (概率dp)

    Some mathematical background. This problem asks you to compute the expected value of a random variab ...

  4. CMakeList.txt(2):CMakeLists.txt编写规则

    #project namePROJECT(test_math)    指定生成的工程名为test_math #head file path     INCLUDE_DIRECTORIES(includ ...

  5. 给centos装图形界面 widowsx

    检查Linux系统是否能够联网.   执行命令 yum -y groupinstall Desktop   等上面的命令执行完后,再执行这条命令 yum -y groupinstall "X ...

  6. <03>labview在winCE6.0系统下的程序移植与界面开发

    任务布置:labview与winCE开发<3> 要求一:学会TouchPane的环境配置,建立调试通道:要求二:掌握触控屏幕界面优化: 正文: 今天介绍labview虚拟仪器软件中 Tou ...

  7. 【关于Java移位操作符&按位操作符】

    一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(b ...

  8. Oracle时间函数

    YYYY年 Q季度 MM月 month月 WW当年第几周 W本月第几周 DDD 当年第几天 DD当月第几天 D当周内第几天 DY当周内星期几 day当周内星期几 HH或HH12:12进制小时数 HH2 ...

  9. 移动开发day1_过渡_2d转换_3d立体

    今天是就业班开班的第一天,上完了一天的课,做点总结. 什么叫做移动web 专门在手机或者 平板电脑 浏览器网页 为什么要学习移动web 工资高 1. 人拥有的手机数 大于 电脑的个数 2. 微信 1. ...

  10. HDU 2594(求最长公共前后缀 kmp)

    题意是在所给的两个字符串中找最长的公共前后缀,即第一个字符串前缀和第二个字符串后缀的最长相等串. 思路是将两个字符串拼接在一起,然后直接套用 kmp 算法即可. 要注意用 next 会报编译错误,改成 ...