類型等價允許應用程式在不重新編譯的情況下,使用多版本強命名組件中的嵌入介面類型。適用於 COM 互通 (如 Office 自動化) 與純 .NET 方案。
[ComImport]
[Guid("8DA56996-A151-4136-B474-32784559F6DF")]
public interface ISampleInterface
{
void GetUserInput();
string UserInput { get; }
}
public class SampleClass : ISampleInterface
{
private string p_UserInput;
public string UserInput { get { return p_UserInput; } }
public void GetUserInput()
{
Console.WriteLine("Please enter a value:");
p_UserInput = Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
Assembly sampleAssembly = Assembly.Load("TypeEquivalenceRuntime");
ISampleInterface sampleClass = (ISampleInterface)sampleAssembly.CreateInstance("TypeEquivalenceRuntime.SampleClass");
sampleClass.GetUserInput();
Console.WriteLine(sampleClass.UserInput);
Console.WriteLine(sampleAssembly.GetName().Version.ToString());
Console.ReadLine();
}
}
public DateTime GetDate() { return DateTime.Now; }
輸出將顯示新版本號,驗證類型等價生效。
[ComImport] 與 [Guid]。[ImportedFromTypeLib] 與組件層級 [Guid]。/link 編譯選項。C# 4.0 引入 dynamic、命名/可選參數、類型等價,大幅簡化 COM 互通與動態語言整合,提升開發產能。這也反映微軟持續強化 Office 生態系整合與動態程式設計能力的策略方向。