CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 680

680
Phụ lục A: Giới thiệu một số công cụ .NET

private static readonly object _syncRoot = new object();

public static <%= ClassName %> Value

{

get

{

if (_instance == null)

{

lock(_syncRoot)

{

if (_instance == null)

{

_instance = new <%= ClassName %>();

}

}

}

return _instance;

}

}

}

Một khi template đã hoàn tất, bạn hãy nạp nó vào CodeSmith (xem hình A-3). Bạn có thể
nhận thấy thuộc tính phía bên trái là thuộc tính mà chúng ta đã khai báo trong template.
Nếu bạn nhập “SingletonClass” làm tên lớp và nhắp nút Generate, CodeSmith sẽ sinh ra lớp
dưới đây:

public sealed class SingletonClass

{

private static volatile SingletonClass _instance;

private SingletonClass() {}

private static readonly object _syncRoot = new object();

public static SingletonClass Value

{

get

{

if (_instance == null)

{

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.