2016-07-22 1 views
0

Suivi de this question.Neat approche de Cast fortement Type de type anonyme en C#

Je voudrais lancer de Strongly Typed à Anonymous Type Résultat. Pour un exemple, la classe suivante doit être convertie en objet de type anonyme pendant l'exécution. Je me bats pour y parvenir.

public sealed class CountryModel 
{ 
    public int CountryId { get; set; } 
    public string CountryName { get; set; } 
    public string CountryCode { get; set; } 
    public bool IsActive { get; set; } 
} 

Utilisation:

new CountryModel() 
{ 
    CountryCode = "AOE", 
    CountryId = 2, 
    CountryName = "Anywhere on Earth", 
    IsActive = true 
}; 

Type Anonyme:

ci-dessus fortement typé doit être converti en anonyme et le résultat final ressemblera à ceci (capturé via immédiate fenêtre:

{ CountryId = 2, CountryName = "Anywhere on Earth", CountryCode = "AOE", IsActive = true } 
    CountryCode: "AOE" 
    CountryId: 2 
    CountryName: "Anywhere on Earth" 
    IsActive: true 

Note: J'ai besoin de ce casting pour que je puisse passer l'objet à Dapper.SimpleCRUD et Dapper ORM Library.

+3

Pourquoi voulez-vous faire cela? –

+0

Ce n'est pas un objet anonyme, il peut être encadré par un 'objet'. Mais ce n'est pas anonyme –

+0

Ajout d'une note à ma question. Mais, ici vous allez encore "besoin de ce casting à faire pour que je puisse passer l'objet à Dapper.SimpleCRUD et Dapper ORM Library" –

Répondre

2

Essayez ceci:

var obj = new { 
    CountryCode = item.CountryCode, 
    CountryId = item.CountryId, 
    CountryName = item.CountryName, 
    IsActive = item.IsActive 
    }; 
+2

Aucune raison pour laquelle cette est * a été * downvoted; il fait * littéralement * ce qui est demandé (bien que vous puissiez réellement le faire terser - juste 'new {item.CountryCode, item.CountryId, ...}' est bien - il infère les noms). La question dans mon esprit, cependant, est de savoir si c'est * utile ou nécessaire * de le faire - c'est vraiment une question pour le PO, bien que –

+0

Pas sûr de quoi vous parlez. Cette réponse n'a pas été downvoted du tout. – Yar