Using Extension methods to create beautiful C# with Example



Using Extension methods to create beautiful C# with Example

mapper classes 
We can create a better mapper classes with extension methods, Suppose if i have some DTO classes like 
public class UserDTO 
{ 
public AddressDTO Address { get; set; } 
} 
public class AddressDTO 
{ 
public string Name { get; set; } 
} 
and i need to map to corresponding view model classes 
public class UserViewModel 
{ 
public AddressViewModel Address { get; set; } 
} 
 

public class AddressViewModel 
{ 
public string Name { get; set; } 
} 
then I can create my mapper class like below 
public static class ViewModelMapper 
{ 
public static UserViewModel ToViewModel(this UserDTO user) 
{ 
return user == null ? 
null : 
new UserViewModel() 
{ 
Address = user.Address.ToViewModel() 
// Job  =  user.Job.ToViewModel(), 
// Contact = user.Contact.ToViewModel() .. and so on 
}; 
} 
public static AddressViewModel ToViewModel(this AddressDTO userAddr) 
{ 
return userAddr == null ? 
null : 
new AddressViewModel() 
{ 
Name = userAddr.Name 
}; 
} 
} 
Then finally i can invoke my mapper like below 
UserDTO userDTOObj = new UserDTO() { 
Address = new AddressDTO() { 
Name = "Address of the user" 
} 
}; 
UserViewModel user = userDTOObj.ToViewModel(); // My DTO mapped to Viewmodel 
The beauty here is all the mapping method have a common name (ToViewModel) and we can reuse it several ways 

0 Comment's

Comment Form