- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Hướng dẫn Copy With All Property in Class Object
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách copy with các thuộc tính của 1 class Object sang một Object mới trên C#, Winform.
[C#] Hướng dẫn Copy With All Property in Class Object
Mình ví dụ: các bạn có 1 class Person bao gồm 4 thuộc tính
- Id
- Name
- Address
- Telephone
Và các bạn muốn copy đối tượng class này vào một object Dynamic mới để chúng ta bổ sung thêm các thuộc tính khác vào như: status, BirthofDay...
Full source code C#:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
var person = new Person() { Id = 1, Name = "Thảo meo", Address = "Vũng Tàu", Telephone="0900000009" };
var dataJson = JsonConvert.SerializeObject(person, Formatting.Indented);
Console.WriteLine(dataJson);
dynamic personClone = CopyWithObjectModel(person);
var listPerson = new List<Person>();
listPerson.Add(new Person() { Id = 4, Name = "Cái Trí Minh" });
listPerson.Add(new Person() { Id = 5, Name = "Nguyễn Đình Tuyên" });
listPerson.Add(new Person() { Id = 6, Name = "Trịnh Quốc Khang" });
personClone.Status = 1;
personClone.TrangThai = "Đẹp trai";
personClone.Result = listPerson;
var data = JsonConvert.SerializeObject(personClone, Formatting.Indented);
Console.WriteLine("---------------------------COPY WITH OBJECT---------------------------------------");
Console.WriteLine(data);
var personClone2 = CopyWithObjectModel(personClone);
personClone2.Add = 1;
personClone2.Update = 1;
personClone2.Delete = 1;
data = JsonConvert.SerializeObject(personClone2, Formatting.Indented);
Console.WriteLine("---------------------------COPY WITH OBJECT CLONE 2---------------------------------------");
Console.WriteLine(data);
Console.ReadLine();
}
public static dynamic CopyWithObjectModel<T>(T modelCopyWith)
{
string json = JsonConvert.SerializeObject(modelCopyWith);
dynamic dynamicObject = JsonConvert.DeserializeObject<ExpandoObject>(json);
return dynamicObject;
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Telephone { get; set; }
public string Website { get; set; } = "https://laptrinhvb.net";
}
}
}
Thanks for watching!