IdeaBlade.Core Assembly > IdeaBlade.Core Namespace > DynamicTypeConverter Class > Convert Method : Convert(IEnumerable) Method |
'Declaration
Public Overloads Shared Function Convert( _ ByVal anonObjects As IEnumerable _ ) As IEnumerable
'Usage
Dim anonObjects As IEnumerable Dim value As IEnumerable value = DynamicTypeConverter.Convert(anonObjects)
public static IEnumerable Convert( IEnumerable anonObjects )
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; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2