我在使用參數創建WCF服務實例時遇到了問題。這種情況出現在服務調用中我無法創建第三方庫COM對象(存在一些線程問題,並且只能在主線程中創建此對象)。因此,我想簡單地維護一個要在服務函數內部創建的對象列表,並讓主線程完成實際的對象創建工作。帶參數的WCF服務實例
但我不清楚我如何可以簡單地將列表傳遞給服務實例的構造函數。就我所知的WCF而言,我認爲服務實例是由框架本身創建的,並且它沒有在構造函數中使用任何參數。那麼將這個列表從主線程傳遞到服務實例的最簡單方法是什麼?謝謝!
我在使用參數創建WCF服務實例時遇到了問題。這種情況出現在服務調用中我無法創建第三方庫COM對象(存在一些線程問題,並且只能在主線程中創建此對象)。因此,我想簡單地維護一個要在服務函數內部創建的對象列表,並讓主線程完成實際的對象創建工作。帶參數的WCF服務實例
但我不清楚我如何可以簡單地將列表傳遞給服務實例的構造函數。就我所知的WCF而言,我認爲服務實例是由框架本身創建的,並且它沒有在構造函數中使用任何參數。那麼將這個列表從主線程傳遞到服務實例的最簡單方法是什麼?謝謝!
嘗試玩:
System.ServiceModel.ServiceHost
System.ServiceModel.Activation.ServiceHostFactory
ServiceBehavior.InstanceContextMode
:
InstanceContextMode.Single
等類範圍字段:
public class Service : IService
{
private AnotherClass _a = new AnotherClass(); // maybe static?
}
將默認的構造函數調用之前,如果你沒有一個默認
不要嘗試將它傳遞給服務類的構造函數實例化,或者反正。這可能會造成問題,因爲它會在服務類和COM類之間創建耦合。相反,只需通過靜態列表屬性或類似方式訪問服務方法中的COM對象:
void MyServiceMethod()
{
List<MyCOMObject> myComObject = MyHelperClass.COMObjectsList //the list is created elsewhere;
...
}
謝謝您的建議。這也是一個好習慣 – tete