CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 08:37:35 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"3e1f982574b5a989ccfc5c6d5a97128c"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=jokEJegXpIDojKWdWHIf7IxZLkc2%2Bhk5uGm0Qo8NLSux9Pcn9L%2BAIYDf6n%2FlByx7JUFBkScl0O1Gr4HM932rJ3kWY5uISm5Xk9szyHIuTwCgPJyAxEOdNSlymFV1828GzEhccTzu5xlCIF8xh6h07TjQckShNvS%2BLJvYHVvT3sliXklGPWr80jwH8Cj7Eiedz0dBZUr2393zrqZYOWBFnfeiD2%2BpbJxNvUxWEaY2mINfqFyite%2FQKJdHoHa2dwi2hmumb60uNbhp5tiV%2BZI5lA%3D%3D--Z%2B8rYRldNImCUiZ3--7IuJEA5T5iNRXwvNbcqq6A%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1776520152.1753259854; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 08:37:34 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 08:37:34 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 8E64:12BD61:7455A7:902B09:68809F4E
Two ways · MapsterMapper/Mapster Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 369
Two ways
chaowlert edited this page Apr 13, 2019
·
1 revision
If you need to map object from POCO to DTO, and map back from DTO to POCO. You can define the setting once by using TwoWays
.
TypeAdapterConfig<Poco, Dto>
.NewConfig()
.TwoWays()
.Map(dto => dto.Code, poco => poco.Id); //<-- this setting will apply dto.Code = poco.Id & poco.Id = dto.Code for reverse mapping
NOTE: TwoWays
command need to call before setting to take effect.
TypeAdapterConfig<Poco, Dto>
.NewConfig()
.Map(dto => dto.Foo, poco => poco.Bar) //<-- this map only apply to Poco->Dto
.TwoWays()
.Map(dto => dto.Foz, poco => poco.Baz); //<-- this map will apply both side
By default, Mapster will perform flattening.
class Staff {
public string Name { get; set; }
public Staff Supervisor { get; set; }
...
}
struct StaffDto {
public string SupervisorName { get; set; }
}
Above example, without any setup, you can map from POCO to DTO and you will get SupervisorName
from Supervisor.Name
(flattening).
However, unflattening process needed to be defined. You can map to Supervisor.Name
from SupervisorName
by
TypeAdapterConfig<StaffDto, Staff>.NewConfig()
.Unflattening(true);
TypeAdapterConfig<Staff, StaffDto>
.NewConfig()
.TwoWays(); //<-- this will also map poco.Supervisor.Name = dto.SupervisorName for reverse mapping
- Configuration
- Config inheritance
- Config instance
- Config location
- Config validation & compilation
- Config for nested mapping
- Custom member matching logic
- Constructor mapping
- Before & after mapping
- Setting values
- Shallow & merge mapping
- Recursive & object references
- Custom conversion logic
- Inheritance
Clone this wiki locally
You can’t perform that action at this time.