2016-07-22 3 views
0

thisからのフォローアップ。キャストするためのきれいなアプローチC#での匿名型への強く型入力

からAnonymous Typeにキャストしたいと思います。次のクラスは、実行時に匿名型オブジェクトに変換する必要があります。これを達成するために苦労しています。

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

使用

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

匿名タイプ:強く型付けされた

上記匿名に変換する必要があり、最終結果はイミディエイトウィンドウを介しがキャプチャ(このようになります。 )

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

注:Dapper.SimpleCRUDとDapper ORM Libraryにオブジェクトを渡すために、このキャストが必要です。

+3

は、なぜあなたはこれをしたいですか? –

+0

これは匿名オブジェクトではなく、 'object'にボックス化することができます。しかし、それは匿名ではありません –

+0

私の質問にメモを追加しました。しかし、ここでもう一度 "Dapper.SimpleCRUDとDapper ORMライブラリにオブジェクトを渡すことができるように、このキャストが必要です。" –

答えて

2

これを試してみてください:

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

なぜこの *であるかわからない* downvoted;それは*文字通り*要求されたものです(実際にはより軽くすることができますが、 'new {item.CountryCode、item.CountryId、...}'はうまくいきます - 名前を推測します)。しかし、私の心の質問は、これを行うには*有用か必要かということです。それは実際にはOPの質問ですが、 –

+0

あなたは何を話しているのかよくわかりません。この答えは全く下降していません。 – Yar