跳轉到內容

.NET 開發基礎/互操作性類

來自 Wikibooks,開放世界中的開放書籍


互操作性、反射和郵件:類、介面和工具


類、介面和工具

[編輯 | 編輯原始碼]

COM 互操作性

[編輯 | 編輯原始碼]

考試目標:將 COM 元件公開到 .NET Framework,並將 .NET Framework 元件公開到 COM

(參考 System.Runtime.InteropServices 名稱空間)

將 COM 元件公開到 .NET Framework

[編輯 | 編輯原始碼]
首先,.NET 開發人員指南中有一篇文章涵蓋了本節的第一部分,請參見 MSDN

將型別庫匯入為程式集 - MSDN

新增對型別庫的引用
與上面連結相同,請參見第二段。
型別庫匯入器 (Tlbimp.exe) - MSDN
從型別庫生成互操作程式集 - MSDN
匯入庫轉換 - MSDN
匯入模組轉換 - MSDN
匯入型別轉換 - MSDN
匯入成員轉換 - MSDN
匯入引數轉換 - MSDN
TypeConverter 類 - MSDN

在託管程式碼中建立 COM 型別 - MSDN

編譯互操作專案 - MSDN

部署互操作應用程式 - MSDN

將 .NET Framework 元件公開到 COM

[編輯 | 編輯原始碼]
該部分的其餘目標直接引用 MSDN

限定 .NET Framework 型別以進行互操作 - MSDN

應用互操作屬性,例如 ComVisibleAttribute 類 - MSDN

為 COM 打包程式集 - MSDN

部署供 COM 訪問的應用程式 - MSDN

呼叫 DLL 函式

[編輯 | 編輯原始碼]

考試目標:在 .NET Framework 應用程式中呼叫非託管 DLL 函式,並控制 .NET Framework 應用程式中的資料封送處理。

(參考 System.Runtime.InteropServices 名稱空間)

平臺呼叫 - MSDN

建立一個類來儲存 DLL 函式 - MSDN

在託管程式碼中建立原型 - MSDN

DllImportAttribute 類 - MSND

呼叫 DLL 函式 - MSDN

在網際網路上搜索“P/Invoke”。
一個很好的參考是:http://www.pinvoke.net/
一些簡短的提示
  • 對於 DllAttribute “CharSet”,從邏輯上講,CharSet.Auto 是最安全的方式,因為它將自動檢測使用的字元集。字元集可以是 ANSI(Win95/Win98/ME) 或 Unicode (Win2000/WinXP)
  • GetEntryPoint:可能有一個棘手的問題,因為 EntryPoint 指示應呼叫的方法。如果使用的方法名稱與要呼叫的方法名稱不同,則需要此標誌。

在特殊情況下呼叫 DLL 函式,例如傳遞結構和實現回撥函式

與上面連結相同
傳遞結構 - MSDN
實現回撥函式 - MSDN

建立一個新的 Exception 類並將其對映到 HRESULT - MSDN

預設封送處理行為 - MSDN

使用平臺呼叫封送處理資料 - MSDN

使用 COM 互操作性封送處理資料 - MSDN

MarshalAsAttribute 類和 Marshal 類

MarshalAsAttribute 類 - MSDN
Marshal 類 - MSDN

實現反射

[編輯 | 編輯原始碼]

考試目標:在 .NET Framework 應用程式中實現反射功能(參考 System.Reflection 名稱空間),並使用 System.Reflection.Emit 名稱空間建立元資料、Microsoft 中間語言 (MSIL) 和 PE 檔案。

構建自定義屬性(附件)

Assembly 類 -MSDN

程式集屬性 - MSDN

AssemblyAlgorithmIdAttribute 類 - MSDN
AssemblyCompanyAttribute 類 - MSDN
AssemblyConfigurationAttribute 類 - MSDN
AssemblyCopyrightAttribute 類 - MSDN
AssemblyCultureAttribute 類 - MSDN
AssemblyDefaultAliasAttribute 類 - MSDN
AssemblyDelaySignAttribute 類 - MSDN
AssemblyDescriptionAttribute 類 - MSDN
AssemblyFileVersionAttribute 類 - MSDN
AssemblyFlagsAttribute 類 - MSDN
AssemblyInformationalVersionAttribute 類 - MSDN
AssemblyKeyFileAttribute 類 - MSDN
AssemblyTitleAttribute 類 - MSDN
AssemblyTrademarkAttribute 類 - MSDN
AssemblyVersionAttribute 類 - MSDN

資訊類

ConstructorInfo 類 - MSDN
MethodInfo 類 - MSDN
MemberInfo 類 - MSDN
PropertyInfo 類 - MSDN
FieldInfo 類 - MSDN
EventInfo 類 - MSDN
LocalVariableInfo 類 - MSDN

Binder 類和 BindingFlags - MSDN

MethodBase 類和 MethodBody 類

MethodBase 類 - MSDN
MethodBody 類 - MSDN

生成器類

AssemblyBuilder 類 - MSDN
ConstructorBuilder 類 - MSDN
EnumBuilder 類 - MSDN
EventBuilder 類 - MSDN
FieldBuilder 類 - MSDN
LocalBuilder 類 - MSDN
MethodBuilder 類 - MSDN
ModuleBuilder 類 - MSDN
ParameterBuilder 類 - MSDN
PropertyBuilder 類 - MSDN
TypeBuilder 類 - MSDN

傳送電子郵件

[edit | edit source]

考試目標:從 .NET Framework 應用程式向簡單郵件傳輸協議 (SMTP) 伺服器傳送電子郵件以進行傳遞。

(請參考 System.Net.Mail 名稱空間)

MailMessage 類 - MSDN

MailAddress 類和 MailAddressCollection 類

MailAddress 類 - MSDN
MailAddressCollection 類 - MSDN

SmtpClient 類、SmtpPermission 類和 SmtpPermissionAttribute 類

SmtpClient 類 - MSDN
SmtpPermission 類 - MSDN
SmtpPermissionAttribute 類 - MSDN

Attachment 類、AttachmentBase 類和 AttachmentCollection 類

Attachment 類 - MSDN
AttachmentBase 類 - MSDN
AttachmentCollection 類 - MSDN

SmtpException 類、SmtpFailedReceipientException 類和 SmtpFailedReceipientsException 類

SmtpException 類 - MSDN
SmtpFailedReceipientException 類 - MSDN
請注意,考試目標頁面中存在一個錯別字,它們使用的是 SmtpFailedReceipientException 而不是 SmtpFailedRecipientException。
SmtpFailedRecipientsException 類 - MSDN
與上面相同的錯別字

SendCompleteEventHandler 委託 - MSDN

LinkedResource 類和 LinkedResourceCollection 類

LinkedResource 類 - MSDN
LinkedResourceCollection 類 - MSDN

AlternateView 類和 AlternateViewCollection 類

AlternateView 類 - MSDN
AlternateViewCollection 類 - MSDN
華夏公益教科書