{"id":7498,"date":"2024-04-17T04:10:18","date_gmt":"2024-04-17T04:10:18","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=7498"},"modified":"2024-04-17T04:36:42","modified_gmt":"2024-04-17T04:36:42","slug":"explain-the-mapper-pattern-with-an-example-in-c","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/","title":{"rendered":"Explain the Mapper pattern with an example in C#"},"content":{"rendered":"<p>The Mapper pattern in <a href=\"https:\/\/studysection.com\/blog\/data-mapper-in-c\/\">C#<\/a> is a design pattern used to facilitate the transformation of data between different object types. Its primary goal is to enable seamless conversion without tightly coupling the classes involved. This pattern is particularly useful when dealing with distinct object types that share similar properties but serve different purposes or contexts.<\/p>\n<p>Consider a scenario where you have two classes, Product and ProductDto (Data Transfer Object), each with similar attributes but utilized in different parts of your application:<\/p>\n<p><code><br \/>\npublic class Product<br \/>\n{<br \/>\npublic int Id { get; set; }<br \/>\npublic string Name { get; set; }<br \/>\npublic double Price { get; set; }<br \/>\n}<\/code><\/p>\n<p>public class ProductDto<br \/>\n{<br \/>\npublic int Id { get; set; }<br \/>\npublic string Name { get; set; }<br \/>\npublic double Price { get; set; }<br \/>\n}<\/p>\n<p>Here&#8217;s an example of how you could implement a mapper to convert between these two types:<\/p>\n<p><code><br \/>\npublic class ProductMapper<br \/>\n{<br \/>\npublic ProductDto MapToDto(Product product)<br \/>\n{<br \/>\nreturn new ProductDto<br \/>\n{<br \/>\nId = product.Id,<br \/>\nName = product.Name,<br \/>\nPrice = product.Price<br \/>\n};<br \/>\n}<\/code><\/p>\n<p>public Product MapToEntity(ProductDto dto)<br \/>\n{<br \/>\nreturn new Product<br \/>\n{<br \/>\nId = dto.Id,<br \/>\nName = dto.Name,<br \/>\nPrice = dto.Price<br \/>\n};<br \/>\n}<br \/>\n}<\/p>\n<p>In this demonstration, the ProductMapper class contains methods for converting a Product object to a ProductDto (MapToDto) and vice versa (MapToEntity).<br \/>\nHere&#8217;s an example of how you might use this mapper in your code:<\/p>\n<p><code><br \/>\n\/\/ Creating a Product instance<br \/>\nProduct product = new Product<br \/>\n{<br \/>\nId = 1,<br \/>\nName = \"Example Product\",<br \/>\nPrice = 29.99<br \/>\n};<\/code><\/p>\n<p>\/\/ Using the mapper to convert Product to ProductDto<br \/>\nProductMapper mapper = new ProductMapper();<br \/>\nProductDto productDto = mapper.MapToDto(product);<\/p>\n<p>\/\/ Using the mapper to convert ProductDto to Product<br \/>\nProduct convertedProduct = mapper.MapToEntity(productDto);<\/p>\n<p>By employing the Mapper pattern, you separate the conversion logic from the classes themselves. This separation of concerns enhances code maintainability and scalability, allowing for easier modifications and expansions as your application evolves.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.<\/p>\n","protected":false},"author":1,"featured_media":7500,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Explain the Mapper pattern with an example in C#<\/title>\n<meta name=\"description\" content=\"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Explain the Mapper pattern with an example in C#\" \/>\n<meta property=\"og:description\" content=\"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-17T04:10:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-17T04:36:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2024\/04\/Add-a-subheading23.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"788\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Explain the Mapper pattern with an example in C#\",\"datePublished\":\"2024-04-17T04:10:18+00:00\",\"dateModified\":\"2024-04-17T04:36:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\"},\"wordCount\":239,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\",\"url\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\",\"name\":\"Explain the Mapper pattern with an example in C#\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2024-04-17T04:10:18+00:00\",\"dateModified\":\"2024-04-17T04:36:42+00:00\",\"description\":\"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Explain the Mapper pattern with an example in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Explain the Mapper pattern with an example in C#","description":"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/","og_locale":"en_US","og_type":"article","og_title":"Explain the Mapper pattern with an example in C#","og_description":"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.","og_url":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2024-04-17T04:10:18+00:00","article_modified_time":"2024-04-17T04:36:42+00:00","og_image":[{"width":940,"height":788,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2024\/04\/Add-a-subheading23.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Explain the Mapper pattern with an example in C#","datePublished":"2024-04-17T04:10:18+00:00","dateModified":"2024-04-17T04:36:42+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/"},"wordCount":239,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/","url":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/","name":"Explain the Mapper pattern with an example in C#","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2024-04-17T04:10:18+00:00","dateModified":"2024-04-17T04:36:42+00:00","description":"The Mapper pattern in C# is a design pattern used to facilitate the transformation of data between different object types.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/explain-the-mapper-pattern-with-an-example-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Explain the Mapper pattern with an example in C#"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":805,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7498"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=7498"}],"version-history":[{"count":6,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7498\/revisions"}],"predecessor-version":[{"id":7505,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7498\/revisions\/7505"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/7500"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=7498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=7498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=7498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}