2012-07-22 33 views
1

我試圖成功地反編譯和更新一箇舊的統一遊戲,我已經修復了大部分錯誤,但是這個仍然給我帶來悲傷。我能找到的所有文檔都告訴我直接分配給成員,但這不是一個選項,因爲成員set_SurrogateSelector訪問了一個內部成員m_surrogates。使用存取函數

private static void Init() 
{ 
    UnityLogWriter.Init(); 
    if (Application.platform.ToString().Contains("WebPlayer")) 
    { 
     BinaryFormatter.set_SurrogateSelector(new UnitySurrogateSelector()); 
    } 
} 


// Decompiled BinaryFormatter 
... 
internal ISurrogateSelector m_surrogates; 
public void set_SurrogateSelector(ISurrogateSelector value) 
{ 
    this.m_surrogates = value; 
} 

所以,我該如何設置代理選擇器?還是我必須編譯一個自定義的mscorlib.dll?

編輯:更新後的代碼,同樣的錯誤

BinaryFormatter nBFormatter = new BinaryFormatter(); 
UnityLogWriter.Init(); 
if (Application.platform.ToString().Contains("WebPlayer")) 
{ 
     nBFormatter.SurrogateSelector = new UnitySurrogateSelector(); 
} 
+0

檢查你的反編譯器設置。 – SLaks 2012-07-22 19:45:13

回答

1

這是不正確的。 BinaryFormatter.SurrogateSelector是公開的。

但你似乎錯誤地使用它。

它是一個實例屬性,因此需要一個實例。

1

這是一個性質。

BinaryFormatter.SurrogateSelector = new UnitySurrogateSelector();