44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
|
namespace System.Web.ModelBinding {
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Collections.ObjectModel;
|
|||
|
using System.Linq;
|
|||
|
|
|||
|
// Describes a complex model, but uses a collection rather than individual properties as the data store.
|
|||
|
public class ComplexModel {
|
|||
|
|
|||
|
public ComplexModel(ModelMetadata modelMetadata, IEnumerable<ModelMetadata> propertyMetadata) {
|
|||
|
if (modelMetadata == null) {
|
|||
|
throw new ArgumentNullException("modelMetadata");
|
|||
|
}
|
|||
|
if (propertyMetadata == null) {
|
|||
|
throw new ArgumentNullException("propertyMetadata");
|
|||
|
}
|
|||
|
|
|||
|
ModelMetadata = modelMetadata;
|
|||
|
PropertyMetadata = new ReadOnlyCollection<ModelMetadata>(propertyMetadata.ToList());
|
|||
|
Results = new Dictionary<ModelMetadata, ComplexModelResult>();
|
|||
|
}
|
|||
|
|
|||
|
public ModelMetadata ModelMetadata {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
public ReadOnlyCollection<ModelMetadata> PropertyMetadata {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
// Contains entries corresponding to each property against which binding was
|
|||
|
// attempted. If binding failed, the entry's value will be null. If binding
|
|||
|
// was never attempted, this dictionary will not contain a corresponding
|
|||
|
// entry.
|
|||
|
public IDictionary<ModelMetadata, ComplexModelResult> Results {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|