惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
S
Secure Thoughts
I
Intezer
Project Zero
Project Zero
Stack Overflow Blog
Stack Overflow Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Full Disclosure
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
人人都是产品经理
人人都是产品经理
博客园_首页
J
Java Code Geeks
Recorded Future
Recorded Future
K
Kaspersky official blog
GbyAI
GbyAI
S
Schneier on Security
The Cloudflare Blog
Spread Privacy
Spread Privacy
C
Cisco Blogs
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
Know Your Adversary
Know Your Adversary
T
Tenable Blog
A
Arctic Wolf
Blog — PlanetScale
Blog — PlanetScale
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
O
OpenAI News
Last Week in AI
Last Week in AI
B
Blog RSS Feed
T
Troy Hunt's Blog
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
Vercel News
Vercel News
量子位
The Register - Security
The Register - Security
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
U
Unit 42
Security Archives - TechRepublic
Security Archives - TechRepublic
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic

博客园 - SuperCai

Leaf'n Joy 隐私政策 Leaf'n Joy (植物灯IOSAPP) WndProc(ref Message m) [转]DllImport属性详解 [转]C#自定义控件背景色透明的方法 日期时间格式化(到毫秒) [转]使用foreach 循环删除DataRow的时候的问题 UTC时间与WINDOWS时间互换 [转]C# Telnet [原]电子工程师工具箱 动态内存中加载DLL的问题 电缆电压降计算 红外对射探测器的安装方法 红外对射调试 终于想起了密码~~汗~~ 解决 Win2003 SP1 无法安装 - SuperCai .net创建windows Service步骤 用netsh自动切换IP
对C#插件接口应用的一些理解
SuperCai · 2012-10-24 · via 博客园 - SuperCai

作一程式,边开发边使用,为方便开发与更新,采用插件方式开发,读了网上一些文章,对插件接口有了一些认识:

主程式为程式框架,表现为exe,

功能模块作插件,表现为DLL,

主程式动态调用功能模块,功能模块为主程式的一部分,

主程式怎样与功能模块交互呢?

简单点就是功能模块实例化时把主程式当一值传递给功能模块,主程式上各开放的资源交给功能模块控制,爱咋整咋整,不设防


如果是有条件开放整呢?用接口吧

讲究的是标准,规范,约束,小人之心行事

接口咋整:

定义插件接口(主程式就认这个接口,实现这个接口的都是哥们,不拒绝)

定义主程式接口(提供给功能模块调用,把要开放的资源窗口都写在这上面,功能模块能折腾的就这些了)

功能模块实现插件接口,主程式实现主程式接口,

两个接口成了主程式与功能模块通讯的桥梁,双方对话就靠它了

以下代码摘自网络:

Public Interface IPluginsApplication//供主程式使用,由主程式实现

    Event Display(ByVal sender As Object, ByVal e As EventArgs)

    Property Caption() As String

    Sub DisplayInput(ByVal Text As String)


End Interface

Public Interface IPlugins//供功能模块使用,由功能模块实现

    Sub Connect(ByVal PluginsApp As IPluginsApplication)

    Sub DIsconnect()

End Interface

主程式代码:

Public Property Caption() As String Implements PluginsInterface.IPluginsApplication.Caption
        Get
            Return Me.Text
        End Get
        Set(ByVal value As String)
            Me.Text = value
        End Set
    End Property

    Public Event Display(ByVal sender As Object, ByVal e As System.EventArgs) Implements PluginsInterface.IPluginsApplication.Display
...

 Dim pobj As PluginsInterface.IPlugins

 pobj.Connect(Me)//把主程式开放的接口提供功能模块

不知以上理解是否有错,-_-!!!,