เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ…เจธเจซเจฒ เจฒเฉ‡เจ–

เจฎเฉˆเจ‚ เจคเฉเจฐเฉฐเจค เจฒเฉ‡เจ– เจฆเฉ‡ เจธเจฟเจฐเจฒเฉ‡เจ– เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐเจพเจ‚เจ—เจพ. เจ…เจธเจฒ เจฏเฉ‹เจœเจจเจพ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจชเจฐ เจฏเจฅเจพเจฐเจฅเจตเจพเจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจšเฉฐเจ—เฉ€, เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจธเจฒเจพเจน เจฆเฉ‡เจฃ เจฆเฉ€ เจธเฉ€, เจชเจฐ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจฆเฉŒเจฐเจพเจจ เจ‡เจน เจธเจฟเฉฑเจง เจนเฉ‹เจ‡เจ† เจ•เจฟ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจ‡เฉฐเจจเจพ เจนเฉŒเจฒเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเจฟเฉฐเจจเจพ เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฟเจ† เจธเฉ€, LINQ เจฎเฉ‡เจฐเฉ‡ เจธเฉเจชเจจเจฟเจ†เจ‚ เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจนเฉˆเฅค เจชเจฐ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจชเจคเจพ เจฒเฉฑเจ—เจพ เจ•เจฟ เจฎเฉˆเจ‚ เจตเฉ€ เจฎเจพเจชเจฟเจ† เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ... เจ‡เจธ เจœเฉ€เจตเจจ เจ•เจนเจพเจฃเฉ€ เจฆเจพ เจตเฉ‡เจฐเจตเจพ เจ•เจŸเฉŒเจคเฉ€ เจ…เจคเฉ‡ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจฆเจพเจนเจฐเจฃ เจ•เจพเจซเจผเฉ€ เจ†เจฎ เจนเฉˆ เจ…เจคเฉ‡ เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจ‰เฉฑเจฆเจฎ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ‡เจน เจ•เจพเจซเจผเฉ€ เจฆเจฟเจฒเจšเจธเจช เจธเจพเจฌเจค เจนเฉ‹เจ‡เจ†, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, เจœเฉ€เจตเจจ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ: เจฒเฉ‡เจ– เจฆเฉ‡ เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡ เจฆเฉ€ เจ—เจคเฉ€ 'เจคเฉ‡ เจชเฉเจฐเจญเจพเจต เจธเฉ€. เจฌเจพเจนเจฐเฉ€ เจคเจฐเจ• เจฆเฉ‡ เจ•เจพเจฐเจจ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚: Moq, Autofac, EF เจ•เฉ‹เจฐ เจ…เจคเฉ‡ เจนเฉ‹เจฐ "เจธเจŸเฉˆเจช"เฅค

เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจชเฉเจฐเจญเจพเจต เจนเฉ‡เจ  เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ: เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจนเฉŒเจฒเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจฒเฉ‡เจ–เจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฆเฉ‡ เจตเจงเฉ€เจ† เจคเจฐเฉ€เจ•เฉ‡ เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจกเฉˆเจฒเฉ€เจ—เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจธเฉเจเจพเจ… เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฌเฉ‡เจธเจผเฉฑเจ•, IL เจจเจฟเจ•เจพเจธ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจšเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฎเจฟเจนเจจเจค เจตเจพเจฒเจพ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ, เจœเฉ‹ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเจพเจฒ เจญเจฐเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ.

เจ‡เจน เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟ เจฎเฉˆเจ‚ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจ—เจคเฉ€ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจฐเจพเจ‡ เจฐเฉฑเจ–เจฆเจพ เจนเจพเจ‚, เจฎเฉ‡เจฐเจพ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเฉ‡เจ–เจ• เจฆเฉ‡ เจธเจฟเฉฑเจŸเจฟเจ†เจ‚ 'เจคเฉ‡ เจธเจตเจพเจฒ เจ•เจฐเจจ เจฆเจพ เจ‡เจฐเจพเจฆเจพ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจ•เจธเจฐ เจเจ‚เจŸเจฐเจชเฉเจฐเจพเจˆเจœเจผ เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจญเฉ‹เจฒเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค เจ•เจฟเจธเจฎ เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเจพเจ‡เจฆเจพเจฆ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจˆ เจ—เจˆ เจนเฉˆเฅค SetValue เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจนเจฐ เจ•เฉ‹เจˆ เจ–เฉเจธเจผ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจฎเฉเฉฑเจฒ เจจเจฟเจธเจผเจพเจจเจพ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจ† เจ—เจฟเจ† เจนเฉˆ, เจนเจฐ เจ•เฉ‹เจˆ เจ–เฉเจธเจผ เจนเฉˆ. เจฌเจนเฉเจค เจนเฉเจธเจผเจฟเจ†เจฐ เจฒเฉ‹เจ• - เจธเฉ€เจจเฉ€เจ…เจฐเจœเจผ เจ…เจคเฉ‡ เจŸเฉ€เจฎ เจฒเฉ€เจก - เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเฉ‡ เจฆเฉ‚เจœเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ‡ "เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ" เจฎเฉˆเจชเจฐเจพเจ‚ เจฆเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจญเฉ‹เจฒเฉ‡-เจญเจพเจฒเฉ‡ เจ…เจฎเจฒ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค, เจ†เจชเจฃเฉ‡ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฌเจœเฉˆเจ•เจŸ เจฒเจˆ เจฒเจฟเจ–เจฆเฉ‡ เจนเจจเฅค เจธเจพเจฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจนเฉเฉฐเจฆเจพ เจนเฉˆ: เจ…เจธเฉ€เจ‚ เจธเจพเจฐเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚: เจœเฉ‡เจ•เจฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจฎเฉˆเจ‚เจฌเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฎ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจธเฉˆเฉฑเจŸเจตเฉˆเจฒเจฏเฉ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ…เจชเจตเจพเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจซเฉœเจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจ•เฉเจ เจœเจพเจ‡เจฆเจพเจฆ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€, เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจœเฉ‹ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹/เจซเฉœเฉ‹เฅค

เจฎเฉˆเจ‚ เจฒเฉ‹เจ•เจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐเจธเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฎเฉˆเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจพเจฒ เจฒเฉˆเจธ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ†เจˆเจ†เจ‚ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจฎเฉˆเจ‚ เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆ เจ•เจฟ เจฒเฉ‹เจ• เจฐเจฃเจจเฉ€เจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡, เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡, เจ‡เฉฐเจœเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡, เจ†เจชเจฃเฉ‡ เจญเฉ‹เจฒเฉ‡เจชเจฃ เจจเฉ‚เฉฐ เจฒเฉเจ•เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจฌเจพเจ…เจฆ เจฆเฉ‡ เจฌเจšเจจ เจจเฉ‚เฉฐ เจฌเจนเจพเจจเจพ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ. เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ‡ เจ…เจนเจฟเจธเจพเจธเจพเจ‚ 'เจคเฉ‡ เจ†เจชเจฃเจพ เจจเฉฑเจ• เจฎเฉ‹เฉœ เจฒเจฟเจ†เฅค เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจ…เจธเจฒ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเฉ€เจ• เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฎเจพเจชเจฟเจ†, เจ…เจคเฉ‡, เจœเฉ‡ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจนเฉ‹เจฐ "เจ…เจจเฉเจ•เฉ‚เจฒ" เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจ‡เจธ 'เจคเฉ‡ เจนเฉฑเจฅ เจชเจพ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค เจ‡เจธ เจฒเจˆ, เจนเฉ‡เจ เจพเจ‚ เจตเจฟเจšเจพเจฐเฉ‡ เจ—เจ เจชเจนเจฟเจฒเฉ‡ เจฎเจพเจชเจพเจ‚ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ—เฉฐเจญเฉ€เจฐเจคเจพ เจจเจพเจฒ เจ‰เจฒเจเจพเจ‡เจ†.

เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡, เจฐเจฟเจ•เจŸเจฐ เจœเจพเจ‚ เจนเฉ‹เจฐ เจตเจฟเจšเจพเจฐเจงเจพเจฐเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเฉ‡ เจนเฉ‹เจ, เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ– เจฌเจฟเจ†เจจ เจตเจฟเฉฑเจš เจ†เจ เจนเจจ เจ•เจฟ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจตเจฐเจคเจพเจฐเจพ เจนเฉˆ เจœเจฟเจธเจฆเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ 'เจคเฉ‡ เจฌเจนเฉเจค เจฎเจพเฉœเจพ เจชเฉเจฐเจญเจพเจต เจชเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เจพเจฒเจฟเฉฐเจ— เจฐเจฟเจซเจฒเจฟเจ•เจธเจผเจจ CLR เจจเฉ‚เฉฐ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฃ เจฒเจˆ เจฎเจœเจผเจฌเฉ‚เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจ–เจฟเฉฑเจšเฉ‹, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเฉ‹, เจ†เจฆเจฟเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเจฐเจคเฉ€เจฌเจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเฉฐเจก เจตเฉฑเจฒ เจฒเฉˆ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, CLR GC เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเฉเจฐเฉ€เจœเจผ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจงเจฟเจ†เจจ เจจเจพเจฒ เจนเฉŒเจฒเฉ€ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจฎเฉ‡เจฐเฉ‡ เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเฉ‹. เจ†เจงเฉเจจเจฟเจ• เจ‰เจคเจชเจพเจฆเจจ เจธเจฐเจตเจฐเจพเจ‚ เจœเจพเจ‚ เจ•เจฒเจพเจ‰เจก เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจ‰เฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจฆเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฐเฉ‹เจ•เจฆเฉ€เฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจœเจฟเฉฐเจจเฉ€ เจœเจผเจฟเจ†เจฆเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจ“เจจเฉ€ เจนเฉ€ เจœเจผเจฟเจ†เจฆเจพ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจŸ เจ•เจฐเฉ‹เจ—เฉ‡ เจ•เจฟ GC เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ, เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจ‰เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจฒเจพเจฒ เจฐเจพเจ— เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ…เจธเฉ€เจ‚ เจธเจพเจฐเฉ‡ IoC เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฎเจฟเจคเฉ€ เจฎเฉˆเจชเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธเจฆเจพ เจธเฉฐเจšเจพเจฒเจจ เจธเจฟเจงเจพเจ‚เจค เจตเฉ€ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจนเฉˆ, เจชเจฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฌเจพเจฐเฉ‡ เจ•เฉ‹เจˆ เจธเจตเจพเจฒ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจจเจนเฉ€เจ‚, เจ‡เจธ เจฒเจˆ เจจเจนเฉ€เจ‚ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฌเจพเจนเจฐเฉ€ เจธเฉ€เจฎเจค เจธเฉฐเจฆเจฐเจญ เจฎเจพเจกเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจจเจฟเจฐเจญเจฐเจคเจพ เจ…เจคเฉ‡ เจเจฌเจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ‡เฉฐเจจเฉ€ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€ เจ•เฉเจฐเจฌเจพเจจเฉ€ เจฆเฉ‡เจฃเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค เจธเจญ เจ•เฉเจ เจธเจฐเจฒ เจนเฉˆ - เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจœเจผเจฟเจ†เจฆเจพ เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจœเฉ‹ เจฐเจฟเจซเจฒเจฟเจ•เจธเจผเจจ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจนเจจ, เจ‡เจธ เจจเจพเจฒ เจนเฉ‹เจฐ เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจนเจฐ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจšเจพเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจ‡เฉฑเจ• เจ•เฉˆเจธเจผ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจธเจฎเฉ€เจ•เจฐเจจ เจŸเฉเจฐเฉ€ เจคเฉ‹เจ‚ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจธเจฎเฉ€เจ•เจฐเจจ เจ…เจคเฉ‡ เจกเฉˆเจฒเฉ€เจ—เฉ‡เจŸ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‰เจนเฉ€ เจ†เจŸเฉ‹เจฎเฉˆเจชเจฐ เจ‡เฉฑเจ• เจชเฉเจฐเจคเฉ€เจฏเฉ‹เจ—เฉ€ เจธเจผเจฌเจฆเจ•เฉ‹เจธเจผ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เจฟ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ? เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เจน เจ‰เจธ เจคเจฐเจ• เจคเฉ‹เจ‚ เจตเฉฑเจ–เจฐเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจ–เฉเจฆ JIT เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ…เจคเฉ‡, เจนเจพเจ‚, เจ‡เจน เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจคเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจนเฉˆ); เจฌเจพเจ…เจฆ เจฆเฉ€เจ†เจ‚ เจ•เจพเจฒเจพเจ‚ 'เจคเฉ‡, เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ€ เจตเจฟเจงเฉ€ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉ‹เจˆ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เจฎเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ JIT เจธเฉฐเจ•เจฒเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธเจฆเฉ‡ AOT เจนเจฎเจฐเฉเจคเจฌเจพ เจฆเฉ‡ เจธเจฎเจพเจจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒ เจธเฉฐเจ•เจฒเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจชเฉเจฐเจ—เจŸเจพเจตเฉ‡ เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจฎเจฆเจฆ เจฒเจˆ เจ†เจ‰เจฃเจ—เฉ‡.

เจชเฉเจฐเจธเจผเจจ เจตเจฟเจšเจฒเฉ‡ เจธเจฟเจงเจพเจ‚เจค เจจเฉ‚เฉฐ เจธเฉฐเจ–เฉ‡เจช เจฐเฉ‚เจช เจตเจฟเจš เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:
เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจตเจพเจฒเฉ‡ เจกเฉˆเจฒเฉ€เจ—เฉ‡เจŸ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ‡ เจ…เฉฐเจคเจฎ เจจเจคเฉ€เจœเฉ‡ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจกเฉ€ เจ•เจฟเจธเจฎ, เจตเจฐเจ•เจฐ, เจœเฉ‹ เจ•เจฟ เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ‡ เจฌเจพเจนเจฐ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจฆเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจŸเจพเจˆเจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจฐเฉ€เจ†เจ‚ เจœเจผเจฐเฉ‚เจฐเฉ€ เจตเจธเจคเฉ‚เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจ•เจฐเจจเจพ เจตเฉ€ เจธเจฎเจเจฆเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจตเจฟเฉฑเจš เจคเจฐเจ• เจนเฉˆเฅค เจ†เจฎ เจธเจฎเจ เจธเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจœเฉ‡ เจ•เฉเจ เจธเฉฐเจ•เจฒเจฟเจค เจ…เจคเฉ‡ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ.

เจ…เฉฑเจ—เฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹เจ, เจ‡เจน เจ•เจฟเจนเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจผ เจฆเฉ‡ เจ‡เจธเจฆเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจนเจจ, เจญเจพเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹. เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ เจฒเฉ‡เจ– เจฆเฉ‡ เจฒเฉ‡เจ–เจ• เจฆเฉ‡ เจฅเฉ€เจธเจฟเจธ เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพ เจฐเจฟเจนเจพ เจนเจพเจ‚ เจœเจฟเจธเจฆเจพ เจฎเฉˆเจ‚ เจ‰เฉฑเจชเจฐ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจนเฉเจฃ เจ•เฉ‹เจก เจฌเจพเจฐเฉ‡. เจ†เจ‰ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจตเฉ‡เจ–เฉ€เจ เจœเฉ‹ เจฎเฉ‡เจฐเฉ‡ เจนเจพเจฒ เจนเฉ€ เจฆเฉ‡ เจฆเจฐเจฆ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจนเฉˆ เจœเจฟเจธเจฆเจพ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เฉฐเจญเฉ€เจฐ เจ•เฉเจฐเฉˆเจกเจฟเจŸ เจธเฉฐเจธเจฅเจพ เจฆเฉ‡ เจ—เฉฐเจญเฉ€เจฐ เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเจฟเจ† เจธเฉ€. เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ เจ•เจพเจฒเจชเจจเจฟเจ• เจนเจจ เจคเจพเจ‚ เจœเฉ‹ เจ•เฉ‹เจˆ เจ…เฉฐเจฆเจพเจœเจผเจพ เจจเจพ เจฒเจ—เจพ เจธเจ•เฉ‡เฅค

เจ•เฉเจ เจธเจพเจฐ เจนเฉˆเฅค เจธเฉฐเจชเจฐเจ• เจนเฉ‹เจฃ เจฆเจฟเจ“เฅค เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจธเจฐเฉ€เจฐ เจตเจพเจฒเฉ‡ เจ…เฉฑเจ–เจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจชเจพเจฐเจธเจฐ เจ…เจคเฉ‡ เจนเจพเจˆเจกเฉเจฐเฉ‡เจŸเจฐ เจ‡เจนเฉ‹ เจœเจฟเจนเฉ‡ เจธเฉฐเจชเจฐเจ• เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจ• เจชเฉฑเจคเจฐ เจ†เจ‡เจ†, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฟเจ†, เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉเฉฑเจ–-เจฎเฉเฉฑเจฒ เจฆเฉ‡ เจœเฉ‹เฉœเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจชเจพเจฐเจธ เจ•เฉ€เจคเจพ, เจ‡เฉฑเจ• เจธเฉฐเจชเจฐเจ• เจฌเจฃเจพเจ‡เจ†, เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพเฅค

เจ‡เจน เจฎเฉเจขเจฒเจพ เจนเฉˆเฅค เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจ‡เฉฑเจ• เจธเฉฐเจชเจฐเจ• เจตเจฟเฉฑเจš เจชเฉ‚เจฐเจพ เจจเจพเจฎ, เจ‰เจฎเจฐ เจ…เจคเฉ‡ เจธเฉฐเจชเจฐเจ• เจซเจผเฉ‹เจจ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เจน เจกเฉ‡เจŸเจพ เจชเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ. เจ•เจพเจฐเฉ‹เจฌเจพเจฐ เจตเฉ€ เจธเจนเจพเจ‡เจคเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ…เฉฑเจ–เจฐ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจญเจพเจ— เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เจ•เจพเจˆ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจช เจ•เจฐเจจ เจฒเจˆ เจจเจตเฉ€เจ†เจ‚ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจœเจพ เจธเจ•เฉ‡เฅค เจœเฉ‡เจ•เจฐ เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ—เจฒเจคเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจœเจพเจ‚ เจœเฉ‡เจ•เจฐ เจฐเฉ€เจฒเฉ€เจœเจผ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจจเจตเฉ‡เจ‚ เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจพเจฅเฉ€ เจคเฉ‹เจ‚ เจฎเฉˆเจชเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆเฅค เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจธเจคเฉ‡ เจกเฉ‡เจŸเจพเจซเจฟเจ•เจธ เจตเจœเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฎเฉˆเจชเจฟเฉฐเจ— เจธเจฌเฉฐเจง เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจฐเจฅเจพเจค เจœเฉ€เจตเจจ เจฆเฉ€ เจฎเจฟเจธเจพเจฒเฅค

เจ…เจธเฉ€เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจŸเฉˆเจธเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚. เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจ•เฉ‹เจก เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เจพ: เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจค เจนเจจ, เจ…เจคเฉ‡ เจ‰เจน เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฒเจฟเฉฐเจ• เจฆเฉเจ†เจฐเจพ GitHub 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเจจ. เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจจเจคเจพ เจคเฉ‹เจ‚ เจชเจฐเฉ‡ เจคเจธเฉ€เจนเฉ‡ เจฆเฉ‡ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจช เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉเจฐเจญเจพเจตเจฟเจค เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจฎเฉˆเจ‚ เจธเจฟเจฐเจซ เจฆเฉ‹ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจฆเจพ เจ•เฉ‹เจก เจฆเฉ‡เจตเจพเจ‚เจ—เจพ เจœเฉ‹ เจนเจพเจˆเจกเฉเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจตเฉฑเจ– เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจคเฉ‡เจœเจผ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€, เจนเจพเจˆเจกเฉเจฐเฉ‡เจŸเจฐ เจคเฉ‹เจ‚, เจœเฉ‹ เจนเฉŒเจฒเฉ€ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€เฅค

เจคเจฐเจ• เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจนเฉˆ: เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจตเจฟเจงเฉ€ เจฎเฉ‚เจฒ เจชเจพเจฐเจธเจฐ เจคเจฐเจ• เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจœเฉ‹เฉœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค LINQ เจชเจฐเจค เจชเจพเจฐเจธเจฐ เจนเฉˆ เจ…เจคเฉ‡ เจนเจพเจˆเจกเฉเจฐเฉ‡เจŸเจฐ เจฆเจพ เจฎเฉ‚เจฒ เจคเจฐเจ• เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเฉฐเจฆเจฐเจญ เจฒเจˆ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจชเจพเจฐเจธเจฐ เจฆเฉ‡ เจœเฉ‹เฉœเจฟเจ†เจ‚ เจจเจพเจฒ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ‡เจนเจจเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจคเฉเจฒเจจเจพ เจฒเจˆ LINQ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เฉ‹เจก เจนเฉˆ)เฅค เจ…เฉฑเจ—เฉ‡, เจœเฉ‹เฉœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉฑเจ– เจนเจพเจˆเจกเจฐเฉ‡เจธเจผเจจ เจตเจฟเจงเฉ€ เจตเจฟเฉฑเจš เจชเจพเจธ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจœเฉ‹เฉœเจฟเจ†เจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เจพเจˆ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเจˆ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

โ€œเจซเจพเจธเจŸโ€ (เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจตเจฟเฉฑเจš เจชเฉเจฐเฉ€เจซเจฟเจ•เจธ เจซเจพเจธเจŸ):

 protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
        {
            var contact = new Contact();
            foreach (var setterMapItem in _proprtySettersMap)
            {
                var correlation = correlations.FirstOrDefault(x => x.PropertyName == setterMapItem.Key);
                setterMapItem.Value(contact, correlation?.Value);
            }
            return contact;
        }

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจธเฉ‡เจŸเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจตเจพเจฒเจพ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ - เจ•เฉฐเจชเจพเจ‡เจฒเจก เจฒเฉˆเจ‚เจฌเจกเจพเจธ เจœเฉ‹ เจธเฉ‡เจŸเจฐ เจ‡เจ•เจพเจˆ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉ‹เจก เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ†:

        static FastContactHydrator()
        {
            var type = typeof(Contact);
            foreach (var property in type.GetProperties())
            {
                _proprtySettersMap[property.Name] = GetSetterAction(property);
            }
        }

        private static Action<Contact, string> GetSetterAction(PropertyInfo property)
        {
            var setterInfo = property.GetSetMethod();
            var paramValueOriginal = Expression.Parameter(property.PropertyType, "value");
            var paramEntity = Expression.Parameter(typeof(Contact), "entity");
            var setterExp = Expression.Call(paramEntity, setterInfo, paramValueOriginal).Reduce();
            
            var lambda = (Expression<Action<Contact, string>>)Expression.Lambda(setterExp, paramEntity, paramValueOriginal);

            return lambda.Compile();
        }

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ. เจ…เจธเฉ€เจ‚ เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจกเฉˆเจฒเฉ€เจ—เฉ‡เจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจธเฉ‡เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจฒเฉ‹เฉœ เจชเฉˆเจฃ 'เจคเฉ‡ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

โ€œเจนเฉŒเจฒเฉ€โ€ (เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจตเจฟเฉฑเจš เจ…เจ—เฉ‡เจคเจฐ เจนเฉŒเจฒเฉ€):

        protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
        {
            var contact = new Contact();
            foreach (var property in _properties)
            {
                var correlation = correlations.FirstOrDefault(x => x.PropertyName == property.Name);
                if (correlation?.Value == null)
                    continue;

                property.SetValue(contact, correlation.Value);
            }
            return contact;
        }

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ SetValue เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจธเจชเจธเจผเจŸเจคเจพ เจฒเจˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉฐเจฆเจฐเจญ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจญเฉ‹เจฒเฉ€-เจญเจพเจฒเฉ€ เจตเจฟเจงเฉ€ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเจนเจฟ-เจธเฉฐเจฌเฉฐเจง เจœเฉ‹เฉœเจฟเจ†เจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เจพเจˆ เจ–เฉ‡เจคเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฟเฉฑเจงเจพ เจฒเจฟเจ–เจฆเจพ เจนเฉˆเฅค เจ…เจ—เฉ‡เจคเจฐ - เจฎเฉˆเจจเฉเจ…เจฒเฅค

เจนเฉเจฃ เจ†เจ“ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจกเฉŒเจŸเจจเฉˆเฉฑเจŸ เจจเฉ‚เฉฐ เจฒเฉˆ เจ•เฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจเฅค เจ…เจคเฉ‡ เจ…เจšเจพเจจเจ•... (เจตเจฟเจ—เจพเฉœเจจ เจตเจพเจฒเจพ - เจ‡เจน เจธเจนเฉ€ เจจเจคเฉ€เจœเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจตเฉ‡เจฐเจตเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจนเจจ)

เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ…เจธเจซเจฒ เจฒเฉ‡เจ–

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจ•เฉ€ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚? เจคเฉ‡เจœเจผ เจ…เจ—เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจœเจฟเฉฑเจคเจฃ เจตเจพเจฒเฉ‡ เจขเฉฐเจ— เจฒเจ—เจญเจ— เจธเจพเจฐเฉ‡ เจชเจพเจธเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจนเฉŒเจฒเฉ€ เจ…เจ—เฉ‡เจคเจฐ เจตเจพเจฒเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจ•เฉฐเจฎ เจฆเฉ€ เจตเฉฐเจก เจ…เจคเฉ‡ เจ—เจคเฉ€ เจฆเฉ‹เจตเจพเจ‚ เจฒเจˆ เจธเฉฑเจš เจนเฉˆเฅค เจฆเฉ‚เจœเฉ‡ เจชเจพเจธเฉ‡, เจœเจฟเฉฑเจฅเฉ‡ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡, เจ‡เจธเจฆเฉ‡ เจ‰เจฒเจŸ, LINQ เจตเจฟเจงเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจฎเฉˆเจชเจฟเฉฐเจ— เจฆเจพ เจ‡เฉฑเจ• เจธเฉเฉฐเจฆเจฐ เจ…เจคเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ, เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจ˜เจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจซเจฐเจ• เจ†เจฐเจกเจฐ เจฆเจพ เจนเฉˆเฅค เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจพเจธเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเจพเจฒ เจฐเฉเจเจพเจจ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพเฅค เจซเจฐเจ• เจธเจฟเจฐเจซ เจชเฉˆเจฎเจพเจจเฉ‡ เจตเจฟเฉฑเจš เจนเฉˆ. LINQ เจจเจพเจฒ เจ‡เจน 4 - 200 เจ—เฉเจฃเจพ เจนเฉŒเจฒเฉ€ เจนเฉˆ, เจฒเจ—เจญเจ— เจ‰เจธเฉ‡ เจชเฉˆเจฎเจพเจจเฉ‡ 'เจคเฉ‡ เจœเจผเจฟเจ†เจฆเจพ เจ•เฉ‚เฉœเจพ เจนเฉˆเฅค

เจจเจตเฉ€เจจเจคเจฎ เจ•เฉ€เจคเจพ

เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ, เจชเจฐ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจจเฉ‡ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ เจœเจพเจ‚ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจก 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ - เจฆเจฎเจฟเฉฑเจคเจฐเฉ€ เจŸเจฟเจ–เฉ‹เจจเฉ‹เจต 0x1000000. เจฎเฉ‡เจฐเฉ‡ เจนเฉฑเจฒ เจฆเฉ€ เจฆเฉ‹ เจตเจพเจฐ เจœเจพเจ‚เจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‰เจธเจจเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจขเฉฐเจ— เจจเจพเจฒ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เฉ€เจคเจพ เจœเฉ‹ เจฎเฉˆเจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจคเฉ‹เจ‚ เจ…เฉฐเจคเจฎ เจคเฉฑเจ• เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เจพเจฐเจจ เจ–เฉเฉฐเจ เจ—เจฟเจ† เจธเฉ€เฅค Moq เจธเฉˆเจŸเจ…เจช เจตเจฟเฉฑเจš เจชเจพเจ เจ—เจ เจฌเฉฑเจ— เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจธเจพเจฐเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจธเจฅเจพเจจ เจตเจฟเฉฑเจš เจ† เจ—เจเฅค เจฐเฉ€เจŸเฉˆเจธเจŸ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจฎเฉเฉฑเจ– เจฐเฉเจเจพเจจ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพ - LINQ เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจน เจตเจงเฉ€เจ† เจนเฉˆ เจ•เจฟ เจธเจฎเฉ€เจ•เจฐเจจ เจธเฉฐเจ•เจฒเจจ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจตเจฟเจ…เจฐเจฅ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจพ เจตเฉฐเจก เจ…เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจธเจฎเฉ‡เจ‚ เจฆเฉ‹เจตเจพเจ‚ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจชเจนเจฟเจฒเฉ€ เจฒเจพเจ‚เจš, เจœเจฆเฉ‹เจ‚ เจธเจฅเจฟเจฐ เจ–เฉ‡เจคเจฐเจพเจ‚ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, "เจคเฉ‡เจœเจผ" เจตเจฟเจงเฉ€ เจฒเจˆ เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจนเฉŒเจฒเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจซเจฟเจฐ เจธเจฅเจฟเจคเฉ€ เจฌเจฆเจฒ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจฐเฉ€เจŸเฉˆเจธเจŸ เจฆเจพ เจจเจคเฉ€เจœเจพ เจนเฉˆ:

เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ…เจธเจซเจฒ เจฒเฉ‡เจ–

เจธเจฟเฉฑเจŸเจพ: เจ•เจฟเจธเฉ‡ เจ‰เฉฑเจฆเจฎ เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจšเจพเจฒเจพเจ‚ เจฆเจพ เจธเจนเจพเจฐเจพ เจฒเฉˆเจฃ เจฆเฉ€ เจ•เฉ‹เจˆ เจ–เจพเจธ เจœเจผเจฐเฉ‚เจฐเจค เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ - LINQ เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจตเจงเฉ‡เจฐเฉ‡ เจ–เจพเจเจ—เจพ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‰เฉฑเจš-เจฒเฉ‹เจก เจตเจฟเจงเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจœเจฟเจจเฉเจนเจพเจ‚ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจ…เจคเฉ‡ เจกเฉˆเจฒเฉ€เจ—เฉ‡เจŸ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจจเฉ‚เฉฐ เจฌเจšเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเฉ‹ เจซเจฟเจฐ "เจคเฉ‡เจœเจผ" เจคเจฐเจ• เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจฒเจšเจ•เจคเจพ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ—เจคเฉ€ เจฆเฉ‹เจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฐเจ•เจฐเจพเจฐ เจฐเฉฑเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจ•เฉ‹เจก เจ‡เฉฑเจฅเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค เจ•เฉ‹เจˆ เจตเฉ€ เจฎเฉ‡เจฐเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€ เจฆเฉ‹ เจตเจพเจฐ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ:
เจนเฉˆเจฌเจฐเจพ เจฐเจฟเจซเจฒเฉˆเจ•เจธเจผเจจ เจŸเฉˆเจธเจŸ

PS: เจŸเฉˆเจธเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ‹เจก IoC เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจตเจฟเฉฑเจš เจ‡เจน เจ‡เฉฑเจ• เจธเจชเจธเจผเจŸ เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ…เฉฐเจคเจฎ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฑเจŸ เจฆเจฟเฉฑเจคเจพ เจœเฉ‹ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจจเฉ‚เฉฐ เจฐเฉŒเจฒเจพ เจชเจพ เจธเจ•เจฆเฉ‡ เจนเจจ.

PPS: เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจฆเจฎเจฟเฉฑเจคเจฐเฉ€ เจŸเจฟเจ–เฉ‹เจจเฉ‹เจต @0x1000000 Moq เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเฉ‡เจฐเฉ€ เจ—เจฒเจคเฉ€ เจจเฉ‚เฉฐ เจ–เฉ‹เจœเจฃ เจฒเจˆ, เจœเจฟเจธ เจจเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจฎเจพเจชเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เฉ€เจคเจพเฅค เจœเฉ‡ เจ•เจฟเจธเฉ‡ เจชเจพเจ เจ• เจ•เฉ‹เจฒ เจ•เจพเจซเฉ€ เจ•เจฐเจฎ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ like เจ•เจฐเฉ‹ เจœเฉ€เฅค เจ†เจฆเจฎเฉ€ เจฐเฉเจ• เจ—เจฟเจ†, เจ†เจฆเจฎเฉ€ เจจเฉ‡ เจชเฉœเฉเจนเจฟเจ†, เจ†เจฆเจฎเฉ€ เจจเฉ‡ เจฆเฉ‹ เจตเจพเจฐ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจ…เจคเฉ‡ เจ—เจฒเจคเฉ€ เจฆเฉฑเจธเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจจเจฎเจพเจจ เจ…เจคเฉ‡ เจนเจฎเจฆเจฐเจฆเฉ€ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆเฅค

PPPS: เจธเฉเจšเฉ‡เจค เจชเจพเจ เจ• เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจœเฉ‹ เจธเจผเฉˆเจฒเฉ€ เจ…เจคเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจ เจฆเฉ‡ เจนเฉ‡เจ เจฒเฉ‡ เจชเฉฑเจงเจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ—เจเฅค เจฎเฉˆเจ‚ เจ‡เจ•เจธเจพเจฐเจคเจพ เจ…เจคเฉ‡ เจธเจนเฉ‚เจฒเจค เจฒเจˆ เจนเจพเจ‚เฅค เจชเฉ‡เจธเจผเจ•เจพเจฐเฉ€ เจฆเฉ€ เจ•เฉ‚เจŸเจจเฉ€เจคเฉ€ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเฉ‹เจฃ เจฒเจˆ เจฌเจนเฉเจค เจ•เฉเจ เจ›เฉฑเจกเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ†เจฒเฉ‹เจšเจจเจพ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฟเจ†. เจฎเฉˆเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจˆเจฒ เจฆเฉ€ เจฎเฉฐเจ— เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹