private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { ResetData(); ISurrogateProvider surrogateProvider = treeView1.SelectedNode as ISurrogateProvider; if (surrogateProvider == null) { return; } object surrogate = surrogateProvider.SurrogateObject; propertyGrid1.SelectedObject = surrogate; if (surrogate is IDataSurrogate) { FileDataNode node = treeView1.SelectedNode as FileDataNode; ShowHexPanel(surrogate as IDataSurrogate, node.GetFileOffset() + node.GetHeaderSize()); } if (surrogate is IImageSurrogate) { ShowImageData(surrogate as IImageSurrogate); } }
ISerializationSurrogate ISurrogateSelector.GetSurrogate(Type type, StreamingContext context, out ISurrogateSelector selector) { int maximumPriority = -int.MaxValue; ISurrogateProvider maximumProvider = null; for (int index = 0; index < this.providers.Count; ++index) { var provider = this.providers[index]; int priority; if (provider.Handles(type, context, out priority) && priority > maximumPriority) { maximumPriority = priority; maximumProvider = provider; } } if (maximumProvider != null) { selector = this; return(maximumProvider); } else { selector = null; return(null); } }
public ReflectionBasedTypeSystem(ISurrogateProvider surrogateProvider, IPathManager pathManager) { SurrogateProvider = surrogateProvider; PathManager = pathManager; }
public SurrogateLogDecorator(ISurrogateProvider inner, TraceListener trace) { SetField.NotNull(out this.inner, nameof(inner), inner); SetField.NotNull(out this.trace, nameof(trace), trace); }
public SurrogateSelector() { _typeSerializationProvider = new TypeSerializationSurrogate(); _memberInfoSerializationProvider = new MemberInfoSerializationSurrogate(); }