我最近遇到了BizTalk映射器的多線程性質以及它如何處理外部程序集的問題。BizTalk映射器和[ThreadStatic]屬性
由於從MSDN這句話表明:
重要寫在 外部組件,用於在 腳本functoid需要是線程安全的 使用任何代碼。這是必需的,因爲 地圖的多個實例可以在運行時使用 這些.NET實例在 壓力條件下。
Mapper將重新使用外部程序集的實例。
在我的團隊是使用應用組件,我們有下面的代碼:
public class MapUtil
{
private string _storeReference;
public void SetStoreReference(string ref)
{
_storeReference = ref;
}
public string GetStoreReference()
{
return _storeReference;
}
}
這是從一個文件導致storereferences映射到不同的文件。
我(似乎)被裝飾的私人領域與[ThreadStatic]
[ThreadStatic]
private static string _storeReference;
我的問題是有固定的這個 - 沒有人知道在BizTalk映射任何與此問題?我知道在Asp.Net中存在使用[ThreadStatic]
的問題,因爲線程被重用,但在BizTalk映射器處理線程的方式中找不到任何文檔。