1. 程式人生 > >.net 匿名類轉xml

.net 匿名類轉xml

//識別需要序列化的型別
        private static readonly Type[] WriteTypes = new[] {
            typeof(string), typeof(DateTime), typeof(Enum),
            typeof(decimal?), typeof(Guid),typeof(int?)
        };
        public static bool IsSimpleType(this Type type)
        {
            return type.IsPrimitive || WriteTypes.Contains(type);
        }
        public static object ToXml(this object input)
        {
            return input.ToXml(null);
        }

        public static object ToXml(this object input, string element = "ROOT")
        {
            if (input == null)
                return null;

            if (string.IsNullOrEmpty(element))
                element = "ROOT";
            element = XmlConvert.EncodeName(element);
            var ret = new XElement(element);

            if (input != null)
            {
                var type = input.GetType();

                if (input is IEnumerable && !type.IsSimpleType())
                {
                    var elements = (input as IEnumerable<object>)
                        .Select(m => m.ToXml(element))
                        .ToArray();

                    return elements;
                }
                else
                {
                    var props = type.GetProperties();
                    var elements = from prop in props
                                   let name = XmlConvert.EncodeName(prop.Name)
                                   let val = prop.GetValue(input, null)
                                   let value = prop.PropertyType.IsSimpleType()
                                        ? new XElement(name, val)
                                        : val.ToXml(name)
                                   where value != null
                                   select value;
                    ret.Add(elements);
                }
            }
            return ret;
        }
            var xx = new
            {
                HEADER = new { TRADEMSG = "", MACHINEID = "" },
                BODY = new
                {
                    ITEM = ITEM.Select(p => new
                    {
                        p.BRID,
                        p.BRXM
                    }).ToList(),
                }
            };

            var aa = xx.ToXml();
            

相關推薦

.net 匿名xml

//識別需要序列化的型別 private static readonly Type[] WriteTypes = new[] { typeof(string), typeof(DateTime), typeof(Enum),

Android 實體xml(JAXB)

1,maven上jar包 匯入,可以編譯但是無法通過,懷疑是jar不全。最後換了一個jar包。 一,實體類轉xml /** * 物件轉xml * @param obj * @return */ public String toXm

.net實體xml檔案

/// <summary> /// 序列化 /// </summary> /// <param name="obj">

DataTable 匿名 陣列物件==>可進行Lamda表示式,Link表示式,會有屬性的智慧提示

由於專案不太適合使用EF ,使用了原生的 ADO.NET ,在得到DataTable 後大多數時候都是直接序列化為JSON格式字串就返回前端了,在一些情況下,又需要對結果集做進一步的處理, (EF中動態生成的實體類,也不能完全滿足要求,隨便一個聯查得到的結果不在程式碼中處理還好,一旦需要在程

C#.NET:高階程式設計之匿名匿名方法與擴充套件方法

 [文中插圖丟失,推薦檢視原文]!important 開篇:在上一篇中,我們瞭解了自動屬性、隱式型別、自動初始化器等所謂的新語法,這一篇我們繼續征程,看看匿名類、匿名方法以及常用的擴充套件方法。雖然,都是很常見的東西,但是未必我們都明白其中蘊含的奧妙。所以,跟著本篇的

ASP.NET MVC RedirectToRoute[]

Controller類中與RedirectToRoute相關的方法有兩個:RedirectToAction()和RedirectToRoute()。   1、RedirectToAction()   ◊ 轉到同一個Controller的另外一個Action protected internal Redire

.NET中那些所謂的新語法之二:匿名匿名方法與擴充套件方法

開篇:在上一篇中,我們瞭解了自動屬性、隱式型別、自動初始化器等所謂的新語法,這一篇我們繼續征程,看看匿名類、匿名方法以及常用的擴充套件方法。雖然,都是很常見的東西,但是未必我們都明白其中蘊含的奧妙。所以,跟著本篇的步伐,繼續來圍觀。 /* 新語法索引 */ 一、匿名類:[ C# 3.0/.NET 3.

.net 中 Json資料實體,實體Json

1.獲取一個頁面的json值,轉換為實體類 public static void GetPurchaseMatPriceLogList()         {             HttpWebRequest request = (HttpWebRequest)Http

xml對象,對象xml工具

null str imp input type style utf coder sch 1 package com.dq.schooldomain.utils; 2 3 4 5 import com.thoughtworks.xstream.XS

.Net Reactor混淆導致匿名處理出現的問題處理分析

.Net Reactor 是一款比較不錯的混淆工具,比VS自帶的那個好用很多,一直以來也陪伴著我們的成長,雖然沒有完美的混淆工具,不過也算還是不錯的,至少能在一定程度上對DLL進行一定的保護處理。 不過最近客戶反映我們在混合框架刪除操作的時候,沒有如期的實現刪除操作,由於混合框架是基於Web API / W

PHP 數組XML 格式

log tle 數組 text array aaa wrap span php 數組 function buildXml( $data, $wrap= ‘xml‘ ){ $str = "<{$wrap}>"; if( is_array(

java匿名

引入 [] person runnable clas trac som per face 匿名內部類也就是沒有名字的內部類 正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化代碼編寫 但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個接口 實例1

xml字符串xml對象,xml對象json對象

ech blank 強制 class find first i++ eat spl xml字符串轉xml對象: function loadXml(str) { if (str == null) { return null; } var

枚舉與字符串及RecordSetXML,JSON

function ada records posit archive var toa ole columns function AdoToJs(ado: TADOQuery): string; var I, J: Integer; json: string

ado.net SqlHelp

傳參數 需要 table object exce ins upd sql語句 識別器 using System; using System.Collections.Generic; using System.Linq; using System.Text; using S

Java通過匿名來實現回調函數

err sys 強制 代碼 表達式 形參 入參 對象 std 在C語言中,函數名可以當做函數指針傳遞給形參從而實現回調 void f1() { printf("f1()\n"); } void f2() { printf("f2()\n"); } void f3() {

PHP至Document操作 xml 文件

fin con 本地服務器 函數 文件 問題解決 contents ont nbsp 今天將項目上傳到服務器後,打開項目發現報錯 Error:undefined function appendChild()。。。。。。,根據提示查看源代碼,發現 new Docume

匿名型與Select方法實現自定義對象插入局部表結構中

aso 直接 菜單 ember new order ber 構建 als 在提取局部表結構數據時,通過Select選取需要的字段,如下句,此時其實產生了一個不用於_menuMan的原新數據類型new { c.SYS_COMMANDS_ID,c.TXT_COMMANDTITL

關於j使用ava匿名的好處總結

cal [] 其他 匿名類 stc ren 調用 ted sat 匿名類,除了只能使用一次,其實還有其他用處,比如你想使用一個類的protected方法時,但是又和這個類不在同一個包下,這個時候匿名類就派上用場了,你可以定義一個匿名類繼承這個類,在這個匿名類中定義一個方法,

Kotlin enum class 匿名實例

其它 spa 重載 可能 es2017 color 父類 匿名類 開發 Kotlin裏的枚舉類裏有新玩意:就是枚舉類的常量可以同時看成是一個同名匿名類 既然是類就可以與方法關聯 看看官網的代碼 如果你有過其它語言的使用枚舉的經歷,你可能對這個定義和說明很迷惑 我給你一個例