在我們的產品中,我們有一些叫做「服務」的東西,它們是產品不同部分(尤其是語言 - 內部語言,C,Python和.NET)之間溝通的基本手段。如何實現我自己的extern類型?
目前,代碼是這樣的(Services.Execute
利用params object[] args
):
myString = (string)Services.Execute("service_name", arg1, arg2, ...);
我寧願希望能夠寫出這樣的代碼,並得到類型檢查,減少冗長的代碼的好處:
myString = ServiceName(arg1, arg2, ...);
這可以用一個簡單的函數來實現,
public static string ServiceName(int arg1, Entity arg2, ...)
{
return (string)Services.Execute("service_name", arg1, arg2, ...);
}
但是,這是相當冗長的,並且在我打算做的時候,對於數十種服務來說,管理起來並不那麼容易。
看到extern
和DllImportAttribute
是如何工作的,我希望它應該可以通過這樣一些手段來掛鉤這件事:
[ServiceImport("service_name")]
public static extern string ServiceName(int arg1, Entity arg2, ...);
但我不知道如何在所有實現這一目標,並能」似乎找不到任何文件(extern
似乎是一個相當模糊的定義的問題)。我發現的最接近的問題是一個有點相關的問題,How to provide custom implementation for extern methods in .NET?這並沒有真正回答我的問題,反正有點不同。 C#語言規範(特別是在版本4.0中,第10.6.7節,外部方法)沒有幫助。
所以,我想提供一個外部方法的自定義實現;這可以實現嗎?如果是這樣,怎麼樣?
最常見的方法是使用接口和遠程代理。 – leppie
查看http://stackoverflow.com/questions/7245507/how-to-provide-custom-implementation-for-extern-methods-in-net –
@PaulZahra:我已經看到了這個問題 - 我在我的問題中提到它 –