Cast ExpandoObject de type anonyme

Puis-je cast ExpandoObject de type anonyme ?

var anoObj = new { name = "testName", email = "testEmail" };

dynamic expandoObj = new System.Dynamic.ExpandoObject();

//Here I'm populating the expandoObj with same property names/types in anonymoustype(anoObj)

//Now, how to convert this ExpandoObject to anonymoustype ?

var newObj = (typeof(anoObj)expandoObj); //This doesn't work

Ajouté Plus Tard

//Ceci est mon entité

public class Customer
    {
        #region Public Properties

        [ColumnAttribute(Name = "IdColumn")]
        public string Id { get; set; }

        [ColumnAttribute(Name = "NameColumn")]
        public string Name { get; set; }

        [ColumnAttribute(Name = "AddressColumn")]
        public string Address { get; set; }

        [ColumnAttribute(Name = "EmailColumn")]
        public string Email { get; set; }

        [ColumnAttribute(Name = "MobileColumn")]
        public string Mobile { get; set; } 

        #endregion
    }

//-------------------------------------------------------------------------------------

public class LookupService<TEntitySource>
{
    public LookupService ()
    {

    }

    public LookupShowable<TEntitySource, TSelection> Select<TSelection>(Expression<Func<TEntitySource, TSelection>> expression)
    {
        var lookupShowable = new LookupShowable<TEntitySource, TSelection>();

        return lookupShowable;
    }
}

public class LookupShowable<TEntitySource,TSelection>
{
    public LookupShowable()
    {

    }

    public LookupExecutable<TEntitySource, TSelection, TShow> Show<TShow>(Expression<Func<TEntitySource, TShow>> expression)
    {
        var lookupExecutable = new LookupExecutable<TEntitySource,TSelection,TShow>();

        return lookupExecutable;
    }
}

public class LookupExecutable<TEntitySource, TSelection, TShow>
{
    public TSelection Execute()
    {
       //Here I want to create a new instance of TSelection and populate values from database and return it.
    }
}

//--------------------------------------------------------------------------------------

//This is How I want to call this from front end...
    var lookupService = new LookupService<Customer>();
    var lookupSelection = lookupService.Select(C => new { C.Id, C.Name, C.Mobile }).Show(C => new { C.Id, C.Name}).Execute();


    string sID = lookupSelection.Id;
    string sName = lookupSelection.Name;
    string sMobile = lookupSelection.Mobile;

Ne pense pas que sur cette partie centrale.. But de cela est une autre...

Mon problème est dans la méthode Execute() LookupExecutable classe. Je ne sais pas comment créer une nouvelle instance de TSelection type et lui affecter des valeurs. Cette TSelection type est toujours un type anonyme..

  • Pourquoi pensez-vous que vous voulez faire ce que vous en pensez?
  • Je veux créer un type anonyme dynamiquement et de lui affecter des valeurs dynamiquement.
  • mais pourquoi? Que voulez-vous faire avec ça?
  • Ceci est lié à stackoverflow.com/questions/10240487/... question. mais ALORS, a fermé à cette question. Comment créer une nouvelle instance de type générique(TResult) qui sera toujours un anonyme tapé. et comment faire pour assigner des valeurs aux propriétés de cette nouvelle instance ?
  • Vous ne semblez pas comprendre ce qu'est "anonyme" signifie.
  • Même si vous pourriez lancer au anonymes de type, ils sont toujours en lecture seule, de toute façon... merci de nous donner plus d'informations sur la plus grande image de ce que vous essayez d'accomplir - pas la façon de pensée de l'accomplir.
  • Ok Jon, Im taper en entier ici.. je veux un min.
  • Un peu l'inverse: how-do-i-iterate-over-the-properties-of-an-anonymous-object-in-c

InformationsquelleAutor Sency | 2012-04-20