Inventory Engine v4.2
Loading...
Searching...
No Matches
MoreMountains.Tools.MMSerializableDictionary< TKey, TValue > Class Template Reference

A serializable dictionary implementation, as Unity still can't serialize Dictionaries natively. More...

Inherits Dictionary, and ISerializationCallbackReceiver.

Inherited by MoreMountains.Tools.DictionaryStringSceneData, and MoreMountains.Tools.DictionaryStringString.

Public Member Functions

 MMSerializableDictionary ()
 MMSerializableDictionary (SerializationInfo info, StreamingContext context)
void OnBeforeSerialize ()
 We save the dictionary to our two lists.
void OnAfterDeserialize ()
 Loads our two lists to our dictionary.

Protected Attributes

List< TKey > _keys = new List<TKey>()
List< TValue > _values = new List<TValue>()

Detailed Description

A serializable dictionary implementation, as Unity still can't serialize Dictionaries natively.

How to use :

For each type of dictionary you want to serialize, create a serializable class that inherits from MMSerializableDictionary, and override the constructor and the SerializationInfo constructor, like so (here with a string/int Dictionary) :

[Serializable] public class DictionaryStringInt : MMSerializableDictionary<string, int> { public DictionaryStringInt() : base() { } protected DictionaryStringInt(SerializationInfo info, StreamingContext context) : base(info, context) { } }

Template Parameters
TKey
TValue

Member Function Documentation

◆ MMSerializableDictionary() [1/2]

MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >.MMSerializableDictionary ( )

◆ MMSerializableDictionary() [2/2]

MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >.MMSerializableDictionary ( SerializationInfo info,
StreamingContext context )

◆ OnAfterDeserialize()

void MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >.OnAfterDeserialize ( )

Loads our two lists to our dictionary.

Exceptions
Exception

◆ OnBeforeSerialize()

void MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >.OnBeforeSerialize ( )

We save the dictionary to our two lists.

Member Data Documentation

◆ _keys

List<TKey> MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >._keys = new List<TKey>()
protected

◆ _values

List<TValue> MoreMountains.Tools.MMSerializableDictionary< TKey, TValue >._values = new List<TValue>()
protected

The documentation for this class was generated from the following file: