Convert a single anonymously-typed object into a dynamically-typed object.
Syntax
Visual Basic (Declaration) | |
---|
Public Overloads Shared Function Convert( _
ByVal anonObject As Object _
) As Object |
Parameters
- anonObject
Example
C# | Copy Code |
---|
private void RunProjectionQuery() {
// Run a query (asynchronously) which returns an anonymous type.
// Assume we've already connected and logged in.
DomainModelEntityManager mgr = DomainModelEntityManager.DefaultManager;
var query = mgr.Customers
.Select(c => new { c.CustomerID, c.CompanyName });
mgr.ExecuteQueryAsync(query, FetchCompleted, "F1");
}
private void FetchCompleted(EntityFetchedEventArgs args) {
// Special logic to handle a projection query -
// you can't bind to an anonymous type in Silverlight.
// If an anonymous type is returned from a query, convert
// it to a DevForce dynamic type to enable binding.
// The Convert method returns an IEnumerable, which you
// can use to directly set a DataGrid ItemsSource property.
if (AnonymousFns.IsAnonymousType(args.Query.ReturnType)) {
_dataGrid.ItemsSource = DynamicTypeConverter.Convert(args.Result);
} else {
_dataGrid.ItemsSource = args.Result;
}
// Binding to anonymous types isn't supported in Silverlight because the anonymous
// type is not a public type. The converted 'dynamic type' is public. We can see this
// here:
bool isPublic1 = args.Query.ReturnType.IsPublic;
bool isPublic2 = DynamicTypeConverter.Convert(args.Result).AsQueryable().ElementType.IsPublic;
} |
Remarks
Requirements
Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family
See Also