a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
117 lines
2.6 KiB
C#
117 lines
2.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
class Program
|
|
{
|
|
public static void Main ()
|
|
{
|
|
SerializeDictionary (new SerializerLazyDictionary ());
|
|
}
|
|
|
|
static void SerializeDictionary (IDictionary values)
|
|
{
|
|
}
|
|
|
|
static void SerializeDictionary (IDictionary<string, object> values)
|
|
{
|
|
}
|
|
}
|
|
|
|
sealed class SerializerLazyDictionary : LazyDictionary
|
|
{
|
|
protected override IEnumerator<KeyValuePair<string, object>> GetEnumerator ()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
internal abstract class LazyDictionary : IDictionary<string, object>
|
|
{
|
|
void IDictionary<string, object>.Add (string key, object value)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
bool IDictionary<string, object>.ContainsKey (string key)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
ICollection<string> IDictionary<string, object>.Keys
|
|
{
|
|
get { throw new NotSupportedException (); }
|
|
}
|
|
|
|
bool IDictionary<string, object>.Remove (string key)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
bool IDictionary<string, object>.TryGetValue (string key, out object value)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
ICollection<object> IDictionary<string, object>.Values
|
|
{
|
|
get { throw new NotSupportedException (); }
|
|
}
|
|
|
|
object IDictionary<string, object>.this [string key] {
|
|
get {
|
|
throw new NotSupportedException ();
|
|
}
|
|
set {
|
|
throw new NotSupportedException ();
|
|
}
|
|
}
|
|
|
|
void ICollection<KeyValuePair<string, object>>.Add (KeyValuePair<string, object> item)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
void ICollection<KeyValuePair<string, object>>.Clear ()
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
bool ICollection<KeyValuePair<string, object>>.Contains (KeyValuePair<string, object> item)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
void ICollection<KeyValuePair<string, object>>.CopyTo (KeyValuePair<string, object> [] array, int arrayIndex)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
int ICollection<KeyValuePair<string, object>>.Count
|
|
{
|
|
get { throw new NotSupportedException (); }
|
|
}
|
|
|
|
bool ICollection<KeyValuePair<string, object>>.IsReadOnly
|
|
{
|
|
get { throw new NotSupportedException (); }
|
|
}
|
|
|
|
bool ICollection<KeyValuePair<string, object>>.Remove (KeyValuePair<string, object> item)
|
|
{
|
|
throw new NotSupportedException ();
|
|
}
|
|
|
|
IEnumerator<KeyValuePair<string, object>> IEnumerable<KeyValuePair<string, object>>.GetEnumerator ()
|
|
{
|
|
return GetEnumerator ();
|
|
}
|
|
|
|
protected abstract IEnumerator<KeyValuePair<string, object>> GetEnumerator ();
|
|
|
|
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
|
|
{
|
|
return ((IEnumerable<KeyValuePair<string, object>>) this).GetEnumerator ();
|
|
}
|
|
}
|