mirror of
https://github.com/actions/runner.git
synced 2025-12-12 15:13:30 +00:00
Account for DataContractSerializer vagaries.
This commit is contained in:
@@ -25,7 +25,8 @@ namespace GitHub.DistributedTask.WebApi
|
|||||||
|
|
||||||
private Issue(Issue original)
|
private Issue(Issue original)
|
||||||
{
|
{
|
||||||
m_data = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
// DataContractSerializer bypasses all constructor logic and inline initialization!
|
||||||
|
this.EnsureInitialized();
|
||||||
if (original != null)
|
if (original != null)
|
||||||
{
|
{
|
||||||
this.Type = original.Type;
|
this.Type = original.Type;
|
||||||
@@ -86,6 +87,7 @@ namespace GitHub.DistributedTask.WebApi
|
|||||||
private void OnDeserialized(StreamingContext context)
|
private void OnDeserialized(StreamingContext context)
|
||||||
{
|
{
|
||||||
SerializationHelper.Copy(ref m_serializedData, ref m_data, StringComparer.OrdinalIgnoreCase, true);
|
SerializationHelper.Copy(ref m_serializedData, ref m_data, StringComparer.OrdinalIgnoreCase, true);
|
||||||
|
this.EnsureInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
[OnSerializing]
|
[OnSerializing]
|
||||||
@@ -104,5 +106,10 @@ namespace GitHub.DistributedTask.WebApi
|
|||||||
private IDictionary<string, string> m_serializedData;
|
private IDictionary<string, string> m_serializedData;
|
||||||
|
|
||||||
private IDictionary<string, string> m_data;
|
private IDictionary<string, string> m_data;
|
||||||
|
|
||||||
|
private void EnsureInitialized()
|
||||||
|
{
|
||||||
|
m_data = m_data ?? new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user