ÆÄÀÏ¿¡ ÀúÀåµÇ´Â Á¤º¸´Â »ç¿ëÀÚ°¡ Á÷Á¢ ¸¸µé°í ÆíÁýÇÑ »ç¿ëÀÚÀÇ °ÍÀÌ´Ù. ¿öµåÇÁ·Î¼¼¼ÀÇ
¹®¼ ÆÄÀÏÀ̳ª ½ºÇÁ·¹µå½ÃÆ®ÀÇ ¿öÅ©½ÃÆ® ÆÄÀÏ, ºñÁÖ¾ó ½ºÆ©µð¿À·Î ¸¸µç ¼Ò½º ÆÄÀÏÀº »ç¿ëÀÚÀÇ Á¤º¸¸¦ ÀúÀåÇÑ´Ù. ÀÌ¿¡ ºñÇØ ÇÁ·Î±×·¥ ÀÚ½ÅÀ» À§ÇÑ Á¤º¸µµ Àִµ¥ µ¿ÀÛÀ» °áÁ¤ÇÏ´Â ¿É¼ÇÀ̳ª ÇöÀç ¼³Ä¡ »óÅÂ, âÀÇ ¸¶Áö¸· À§Ä¡¿Í Å©±âµµ ÀúÀåÇØ ³õ°í ´ÙÀ½ ¹ø ½ÇÇàÇÒ ¶§ º¹±¸ÇØ¾ß ÇÑ´Ù.
ÇÁ·Î±×·¥ ³»ºÎÀÇ ÀÌ·± Á¤º¸´Â ÆÄÀÏ·Î ÀúÀåÇÒ ¼ö ÀÖÁö¸¸ º¸¾ÈÀ̳ª ¼Óµµ µîÀÇ ÀÌÀ¯·Î ÁÖ·Î ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇÑ´Ù. ·¹Áö½ºÆ®¸®´Â ½Ã½ºÅÛÀÇ ¼³Á¤°ú »ç¿ëÀÚÀÇ ·Î±×ÀÎ Á¤º¸, ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ
°íÀ¯ÇÑ Á¤º¸¸¦ ÀúÀåÇϱâ À§ÇØ ¿î¿µÃ¼Á¦°¡ Á¦°øÇÏ´Â Áß¾Ó Á¤º¸ ÀúÀå¼ÒÀÌ´Ù. ºÎÆà Á÷ÈĺÎÅÍ ¿·Á ÀÖ¾î ¼Óµµ°¡
ºü¸£°í º¸¾È Àû¿ëÀ» ¹ÞÀ¸¸ç ½Ã½ºÅÛ¿¡ ÀÇÇØ ¹é¾÷±îÁö °ü¸®µÈ´Ù. ·¹Áö½ºÆ®¸® ÆíÁý±â(regedit)¸¦ ÅëÇØ ¾î¶² Á¤º¸°¡ ÀúÀåµÇ¾î ÀÖ´ÂÁö º¼ ¼ö ÀÖÀ¸¸ç Á÷Á¢ ÆíÁýµµ °¡´ÉÇÏ´Ù.
·¹Áö½ºÆ®¸® °ü·Ã Ŭ·¡½º´Â Microsoft.Win32 ³×ÀÓ½ºÆäÀ̽º¿¡
Á¤ÀǵǾî ÀÖ´Ù. °¡Àå ±âº»ÀÌ µÇ´Â Ŭ·¡½º´Â RegistryÀε¥
º°´Ù¸¥ ±â´ÉÀº ¾ø°í ·¹Áö½ºÆ®¸®ÀÇ ·çƮŰ(ÇÏÀ̺ê)¸¦ ¸®ÅÏÇÏ´Â
Àбâ Àü¿ëÀÇ Á¤Àû Çʵ常 Á¦°øÇÑ´Ù. ·¹Áö½ºÆ®¸®´Â ÀúÀåµÇ´Â Á¤º¸ÀÇ Á¾·ù¿¡ µû¶ó ClassesRoot, LocalMachine, CurrentConfig µîÀÇ ÁÖ¿ä ÇÏÀ̺ê·Î ±¸¼ºµÇ´Âµ¥ ÀÀ¿ë
ÇÁ·Î±×·¥ÀÌ Á¤º¸ ÀúÀåÀ» À§ÇØ »ç¿ëÇÏ´Â ÇÏÀ̺ê´Â CurrentUserÀÌ´Ù. °¢ ÇÏÀÌºê ¾Æ·¡¿¡´Â ¿©·¯ ´Ü°èÀÇ ¼ºêÅ°°¡ °èÃþÀûÀ¸·Î Á¸ÀçÇÏ¸ç ¼ºêÅ° ¾È¿¡ °ª°ú µ¥ÀÌÅÍ°¡ ÀúÀåµÈ´Ù.
RegistryÀÇ Á¤Àû Çʵå´Â ´ëÀÀµÇ´Â ÇÏÀ̺긦 Ç¥ÇöÇÏ´Â RegistryKey °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù. RegistryKey Ŭ·¡½º°¡
·¹Áö½ºÆ®¸® ÀÔÃâ·Â¿¡ ´ëÇÑ ´ëºÎºÐÀÇ ±â´ÉÀ» Á¦°øÇÏ´Â ÇÙ½É Å¬·¡½ºÀÌ¸ç ¼ºêÅ°¿Í °ª, µ¥ÀÌÅ͸¦ °ü¸®ÇÏ´Â ¸â¹ö°¡
¸â¹ö·Î Æ÷ÇԵǾî ÀÖ´Ù. ¼ºêÅ°¿¡ ¾×¼¼½ºÇÏ·Á¸é ¸ÕÀú ¿¾î¾ß Çϴµ¥ ´ÙÀ½ µÎ ¸Þ¼µå Áß Çϳª¸¦ È£ÃâÇÑ´Ù.
RegistryKey OpenSubKey (string name [,bool
writable])
RegistryKey CreateSubKey (string subkey [,
RegistryKeyPermissionCheck permissionCheck, RegistrySecurity registrySecurity]
)
¼ºêÅ°¸¦ ¿©´Â ¸Þ¼µå¿Í »ý¼ºÇÏ´Â ¸Þ¼µå°¡ °¢°¢ µû·Î Á¦°øµÈ´Ù.
OpenSubKey ¸Þ¼µå·Î ¼ºêÅ°¸¦ ¿Áö ¸øÇϸé nullÀÌ ¸®ÅϵǴµ¥ À̶§´Â CreateSubKey ¸Þ¼µå·Î ¼ºêÅ°¸¦ Á÷Á¢ »ý¼ºÇÑ´Ù. ¼ºêÅ°ÀÇ
°æ·Î´Â µð·ºÅ͸®¿Í ¸¶Âù°¡Áö·Î \·Î ±¸ºÐÇÏ¿© °èÃþÀûÀ¸·Î Ç¥ÇöÇÑ´Ù.
writable Àμö´Â ¼ºêÅ°¿¡ °ªÀ» ¾µ ¼ö ÀÖ´ÂÁö ÁöÁ¤Çϴµ¥ »ý·«Çϸé ÀÐÀ» ¼ö¸¸ ÀÖ´Ù. ³ª¸ÓÁö
Àμö´Â »ý¼ºµÇ´Â ¼ºêÅ°ÀÇ ±ÇÇÑÀ̳ª º¸¾È ÁöÁ¤À» ÇÑ´Ù. °ªÀ» ÀÐ°í ¾µ ¶§´Â ´ÙÀ½ µÎ ¸Þ¼µå¸¦ »ç¿ëÇÑ´Ù.
Object GetValue (string name [,Object
defaultValue,RegistryValueOptions options])
void SetValue (string name,Object value
[,RegistryValueKind valueKind])
GetValue ¸Þ¼µå·Î °ªÀÇ À̸§À» Àü´ÞÇϸé ÀÌ °ªÀÇ µ¥ÀÌÅ͸¦ Àоî
¸®ÅÏÇÑ´Ù. ·¹Áö½ºÆ®¸®¿¡´Â ÀÓÀÇ Å¸ÀÔÀÇ µ¥ÀÌÅÍ°¡ ±â·ÏµÉ ¼ö ÀÖÀ¸¹Ç·Î ¸®ÅÏ Å¸ÀÔÀº ObjectÀε¥ Àû´çÈ÷ ij½ºÆÃÇؼ »ç¿ëÇÑ´Ù. °ªÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é
µÎ ¹ø° Àμö·Î ÁöÁ¤µÈ defaultValue¸¦ ´ë½Å ¸®ÅÏÇÑ´Ù.
SetValue ¸Þ¼µå´Â name °ª¿¡ value µ¥ÀÌÅ͸¦
ÀúÀåÇÏ¸ç ¼¼ ¹ø° Àμö·Î ÀúÀåÇÒ Å¸ÀÔÀ» ÁöÁ¤ÇÑ´Ù.
ŸÀÔ |
¼³¸í |
DWord |
32ºñÆ®ÀÇ Á¤¼ö·Î ÀúÀåÇÑ´Ù. |
String |
null·Î ³¡³ª´Â ¹®ÀÚ¿·Î ÀúÀåÇÑ´Ù. |
Binary |
ÀÌÁø µ¥ÀÌÅÍ·Î ÀúÀåÇÑ´Ù. |
ExpandString |
ȯ°æ º¯¼ö¸¦ È®ÀåÇÏÁö ¾ÊÀº ¹®ÀÚ¿·Î ÀúÀåÇÑ´Ù. |
MultiString |
¿©·¯ °³ÀÇ ¹®ÀÚ¿·Î ±¸¼ºµÈ º¹ÇÕ ¹®ÀÚ¿·Î ÀúÀåÇÑ´Ù. ¹®ÀÚ¿ÀÇ ³¡Àº µÎ °³ÀÇ null¹®ÀÚ·Î Á¾·áµÈ´Ù. |
QWord |
64ºñÆ®ÀÇ Á¤¼ö·Î ÀúÀåÇÑ´Ù. |
Unknown |
Áö¿øµÇÁö ¾Ê´Â ŸÀÔÀÌ´Ù. |
Á¤¼ö¿Í ¹®ÀÚ¿ µÎ °¡Áö ŸÀÔ¸¸ »ç¿ëÇصµ À¢¸¸ÇÑ Á¤º¸´Â ÃæºÐÈ÷ ÀúÀåÇÒ ¼ö ÀÖÀ¸¸ç °¡²û Å« µ¥ÀÌÅÍ¿¡ ´ëÇؼ¸¸ ÀÌÁø
ŸÀÔÀ» »ç¿ëÇÑ´Ù. ŸÀÔÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¹®ÀÚ¿ ÇüÅ·ΠÀúÀåµÈ´Ù. ´ÙÀ½
¿¹Á¦´Â ¹®ÀÚ¿°ú Á¤¼ö¸¦ ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇÏ°í ´ÙÀ½ ½ÇÇà½Ã¿¡ ·¹Áö½ºÆ®¸®·ÎºÎÅÍ º¹±¸ÇÑ´Ù.
RegistryTest |
using
System; ~ using System.Windows.Forms; using
Microsoft.Win32; namespace
RegistryTest { public
partial class Form1 : Form { const
string RegRoot = @"Software\SoenSoft\RegistryTest"; public
Form1() { InitializeComponent(); } private
void Form1_Load(object sender, EventArgs e) { string
Setting = RegRoot + @"\Setting"; RegistryKey
R = Registry.CurrentUser.OpenSubKey(Setting); if
(R == null) { textBox1.Text
= "ù ¹®ÀÚ¿"; numericUpDown1.Value
= 12; }
else { textBox1.Text
= (string)R.GetValue("Text"); numericUpDown1.Value
= (int)R.GetValue("Value"); R.Close(); } } private
void Form1_FormClosed(object sender, FormClosedEventArgs e) { string
Setting = RegRoot + @"\Setting"; RegistryKey
R = Registry.CurrentUser.OpenSubKey(Setting, true); if
(R == null) { R
= Registry.CurrentUser.CreateSubKey(Setting); } R.SetValue("Text",
textBox1.Text); R.SetValue("Value",
numericUpDown1.Value, RegistryValueKind.DWord); R.Close(); } } } |
Æû¿¡ ÅؽºÆ® ¹Ú½º¿Í ¾÷´Ù¿îÀ» ¹èÄ¡ÇÏ°í ¹®ÀÚ¿°ú Á¤¼ö¸¦ ÀԷ¹޴´Ù. Load À̺¥Æ®¿¡¼
ÀúÀåµÈ Á¤º¸¸¦ Àбâ À§ÇØ ·¹Áö½ºÆ®¸®¸¦ °Ë»öÇϴµ¥ °üÇà¿¡ µû¶ó ¼ºêÅ°´Â CurrentUser ¾Æ·¡ÀÇ "Software\ȸ»ç¸í\ÇÁ·Î±×·¥¸í"À¸·Î Áö¾ú´Ù. ÀÌ ¼ºêÅ° ¾Æ·¡¿¡ Á¤º¸ÀÇ Á¾·ù¿¡ µû¶ó ¶Ç ´Ù¸¥
¼ºêÅ°¸¦ ´õ ¸¸µå´Âµ¥ ÇÁ·Î±×·¥ÀÇ ¼³Á¤ »óÅ´ Setting ¼ºêÅ°¿¡ ÀúÀåÇß´Ù. ÃÖÃÊ ½ÇÇà½Ã¿¡´Â ¼ºêÅ°°¡ »ý¼ºµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î µðÆúÆ®¸¦ Àû¿ëÇÑ´Ù.
½ÇÇàÁß¿¡ »ç¿ëÀÚ´Â ÅؽºÆ® ¹Ú½º¿Í ¾÷´Ù¿îÀÇ Á¤º¸¸¦ ¸¶À½´ë·Î ÆíÁýÇÑ´Ù. ÀÌ·¸°Ô
ÆíÁýµÈ Á¤º¸´Â ÆûÀÌ ´ÝÈ÷´Â FormClosed À̺¥Æ®¿¡¼ ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇÑ´Ù. OpenSubKey ¸Þ¼µå·Î ¼ºêÅ°¸¦ ¿¾î º¸°í ¾øÀ¸¸é
CreateSubKey·Î Á÷Á¢ »ý¼ºÇÑ´Ù. ±×¸®°í
SetValue ¸Þ¼µå·Î ¹®ÀÚ¿°ú Á¤¼ö°ªÀ» ÀúÀåÇß´Ù. ÃÖÃÊ ½ÇÇàÇÒ ¶§´Â ¼ºêÅ°¸¦ ¸¸µé¾î¾ß
ÇÏ¸ç µÎ ¹ø° ½ÇÇàÇÒ ¶§ºÎÅÍ´Â OpenSubKey°¡ Ç×»ó ¼º°øÇÑ´Ù. ·¹Áö½ºÆ®¸®
ÆíÁý±â¸¦ º¸¸é Á¤º¸°¡ ÀúÀåµÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ÀúÀåµÈ Á¤º¸´Â ´ÙÀ½ ½ÇÇà½Ã¿¡ Load À̺¥Æ®¿¡¼ GetValue ¸Þ¼µå¿¡ ÀÇÇØ º¹±¸µÈ´Ù. ·¹Áö½ºÆ®¸®¿¡ ÀúÀåµÈ Á¤º¸´Â
ÃÖÃÊ ¼³Ä¡µÉ ¶§ µü ÇÑ ¹ø¸¸ µðÆúÆ®°ªÀ¸·Î ÃʱâÈÇÏ°í Á¾·á Àü¿¡ ÀúÀåÇÏ°í ½ÃÀÛÇÒ ¶§ ´Ù½Ã º¹±¸ÇϹǷΠ»ý¸íÀÌ ¾ÆÁÖ ±æ´Ù. ÇÁ·Î±×·¥ÀÌ ¼³Ä¡ ÇØÁ¦µÇ°Å³ª Çϵåµð½ºÅ©¸¦ Æ÷¸ËÇÒ ¶§±îÁö °è¼Ó À¯ÁöµÈ´Ù.
±¸¼º ÆÄÀÏÀº ÇÁ·Î±×·¥ÀÇ °í±Þ ¿É¼ÇÀ» ÀúÀåÇÏ´Â ÆÄÀÏÀÌ´Ù. Á¤º¸¸¦ ÀúÀåÇÑ´Ù´Â
¸é¿¡¼ ·¹Áö½ºÆ®¸®¿Í ±â´ÉÀÌ ºñ½ÁÇÏÁö¸¸ ÀÀ¿ë ÇÁ·Î±×·¥°ú °°ÀÌ ¹èÆ÷µÇ¾î Ãʱ⠼³Á¤°ªÀ» ÁöÁ¤ÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. À¢¸¸Çؼ´Â
¹Ù²îÁö ¾ÊÁö¸¸ ÇÊ¿äÇÏ´Ù¸é »ç¿ëÀÚ°¡ Á÷Á¢ ÆíÁýÇÒ ¼öµµ ÀÖ´Ù. ±¸¼º ÆÄÀÏÀÇ Á¤º¸´Â ÄÁÆ®·ÑÀÇ ÇÁ·ÎÆÛƼ¿Í ¿¬°á
°¡´ÉÇÏ´Ù. Á¶±Ý º¹ÀâÇϹǷΠ´Ü°è¸¦ µû¶ó ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.
DynamicProperty |
ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇϸé App.config ÆÄÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÈ´Ù. ÀÌÀü ¹öÀü¿¡¼´Â »õ Ç׸ñ Ãß°¡ ´ëÈ»óÀÚ¿¡¼ ¾ÖÇø®ÄÉÀÌ¼Ç ±¸¼º ÆÄÀÏÀ» ÇÊ¿äÇÒ ¶§ Ãß°¡ÇÏ´Â ½ÄÀ̾ú´Âµ¥ ÇöÀç´Â óÀ½ºÎÅÍ
¸¸µé¾îÁø´Ù. ÀÌ ÆÄÀÏÀ» ¿¾î º¸ÀÚ.
<?xml version="1.0"
encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"
/>
</startup>
</configuration>
XMLÀÇ ±âº» »À´ë¸¸ °®Ãß¾úÀ» »Ó ¾ÆÁ÷ ¾Æ¹« Á¤º¸µµ ¾ø´Ù. ÀÌÈÄ configuration ¿¤¸®¸ÕÆ®¿¡ Á¤º¸¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. Æû ¼Ó¼ºÃ¢ÀÇ ApplicationSetting/PropertyBinding Ç׸ñ
¿·ÀÇ ... ¹öÆ°À» ´©¸£¸é ´ÙÀ½ ´ëÈ»óÀÚ°¡ ³ªÅ¸³´Ù.
ÆûÀÇ ÇÁ·ÎÆÛƼ°¡ ³ª¿µÇ¾î Àִµ¥ ÀÌ ´ëÈ»óÀÚ¿¡¼ ÇÁ·ÎÅÍƼ¿Í ±¸¼º ÆÄÀÏÀÇ Ç׸ñÀ» ¿¬°áÇÑ´Ù. Text ÇÁ·ÎÆÛƼÀÇ µå·Ó´Ù¿îÀ» ¿¾î »õ·Î ¸¸µé±â¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½ ´ëÈ»óÀÚ°¡ ³ªÅ¸³´Ù.
Name Çʵ忡 FormText¶ó´Â
À̸§À» ºÙÀδÙ. ¿©±â±îÁö ÀÛ¾÷ÇÑ ÈÄ ½ÇÇàÇØ º¸¸é Æò¼Ò¿Í ÀüÇô ´Ù¸¦ ¹Ù ¾ø´Ù. ±×·¯³ª App.config ÆÄÀÏÀÌ ´ÙÀ½°ú °°ÀÌ ¹Ù²î¾î ÀÖ°í Debug Æú´õ¸¦ º¸¸é DymamicProperty.exe.config¶ó´Â
µ¿ÀÏÇÑ ³»¿ëÀÇ XML ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖ´Ù.
<?xml version="1.0"
encoding="utf-8" ?>
<configuration>
<configSections>
====
Áß°£ »ý·« ====
</configSections>
<userSettings>
<DynnamicProperty.Properties.Settings>
<setting
name="FormText" serializeAs="String">
<value>Form1</value>
</setting>
</DynnamicProperty.Properties.Settings>
</userSettings>
</configuration>
userSettings ¿¤¸®¸ÕÆ®¾È¿¡
setting ¿¤¸®¸ÕÆ®°¡ Æ÷ÇԵǾî Àִµ¥ À̸§Àº FormTextÀÌ°í °ªÀº Form1À̶ó°í ±â·ÏµÇ¾î ÀÖ´Ù. ±×¸®°í Æû µðÀÚÀ̳ʰ¡ ¸¸µç Äڵ带
º¸¸é ´ÙÀ½°ú °°Àº ±ä Äڵ尡 Àִµ¥ ÀÌ Äڵ忡 ÀÇÇØ ÆûÀÇ Text ÇÁ·ÎÆÛƼ°¡ ±¸¼º ÆÄÀÏÀÇ FormText ¿¤¸®¸ÕÆ®¿Í ¿¬°áµÈ´Ù.
this.DataBindings.Add(new
System.Windows.Forms.Binding("Text", global::DynnamicProperty.
Properties. Settings. Default, "FormText", true,
System.Windows.Forms. DataSourceUpdateMode. OnPropertyChanged));
¶Ç ¼Ó¼ºÃ¢ÀÇ Text ÇÁ·ÎÆÛƼ¸¦ º¸¸é ¾ÆÀÌÄÜÀÌ Ç¥½ÃµÇ¾î ÀÖÀ¸¸ç ÀÌ
¾ÆÀÌÄÜ¿¡ Ä¿¼¸¦ ´ë º¸¸é "FormText" ÀÀ¿ë ÇÁ·Î±×·¥ ¼³Á¤¿¡ ¹ÙÀεùµÇ¾î ÀÖ´Ù´Â
ÅøÆÁÀÌ ³ªÅ¸³´Ù. Text ÇÁ·ÎÆÛƼ¸¦ ¼öÁ¤Çϸé App.configÀÇ FormText ¿¤¸®¸ÕÆ®°¡ °°ÀÌ ¼öÁ¤µÇ¸ç ¹Ý´ë·Î App.configÀÇ FormText¸¦ ¼öÁ¤Çϸé ÆûÀÇ Text ÇÁ·ÎÆÛƼµµ ¼öÁ¤µÈ´Ù. ÀÌ µÑÀÌ ¹ÙÀεùµÇ¾î ¹ÀÎ °ÍÀÌ´Ù.
App.config ÆÄÀÏÀº ÄÄÆÄÀÏÇÒ ¶§¸¶´Ù Debug Æú´õÀÇ ½ÇÇàÆÄÀϸí.config ÆÄÀÏ·Î º¹»çµÈ´Ù. ±×·¸´Ù¸é ÀÌ·¸°Ô ¹ÙÀεùµÈ °ÍÀÌ ¹«½¼ Àǹ̰¡ ÀÖ´ÂÁö, ¾î¶² ½Ç¿ëÀûÀÎ
°¡Ä¡°¡ ÀÖ´ÂÁö Å×½ºÆ®ÇØ º¸ÀÚ. Ž»ö±â¿¡¼ Debug Æú´õ¸¦
¿°í ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇÏ¸é º° ƯÀÌÇÑ »çÇ×¾øÀÌ ½ÇÇàµÈ´Ù. À̹ø¿¡´Â °°Àº Æú´õ¿¡ ÀÖ´Â DynamicProperty.exe.config ÆÄÀÏÀ» ¸Þ¸ðÀåÀ¸·Î ¿¾î¼ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ º¸ÀÚ.
<userSettings>
<DynamicProperty.Properties.Settings>
<setting
name="FormText" serializeAs="String">
<value>ÆûÀÇ
À̸§ÀÌ´Ù.</value>
</setting>
</DynamicProperty.Properties.Settings>
</userSettings>
FormText Ç׸ñÀÇ value ¿¤¸®¸ÕÆ®¸¦
¼öÁ¤Çß´Ù. ±×¸®°í ÀÌ »óÅ¿¡¼ ´Ù½Ã ½ÇÇàÇØ º¸¸é config ÆÄÀÏ¿¡
ÀÔ·ÂÇÑ ¹®ÀÚ¿ÀÌ ÆûÀÇ Text ÇÁ·ÎÆÛƼ¿¡ ±×´ë·Î Àû¿ëµÈ´Ù. ¿Ö³ÄÇϸé
ÆûÀÇ Text ÇÁ·ÎÆÛƼ°¡ ±¸¼º ÆÄÀÏÀÇ FormText¿¡ ¿¬°áµÇ¾î
ÀÖ°í µðÀÚÀ̳ʰ¡ ¸¸µç Äڵ忡¼ ½ÇÇà Á÷ÈÄ¿¡ ±¸¼º ÆÄÀÏ¿¡¼ Á¤º¸¸¦ Àоî Text ÇÁ·ÎÆÛƼ¿¡ ´ëÀÔÇϱ⠶§¹®ÀÌ´Ù.
ÀÌ·¸°Ô ±¸¼º ÆÄÀÏÀÇ Ç׸ñ°ú ¿¬°áµÈ ÇÁ·ÎÆÛƼ¸¦ µ¿Àû ÇÁ·ÎÆÛƼ¶ó°í ÇÑ´Ù. µ¿Àû
ÇÁ·ÎÆÛƼÀÇ ÀåÁ¡Àº ½ÇÇà ÆÄÀÏÀ» ÄÄÆÄÀÏÇÏÁö ¾Ê°íµµ µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ±¸¼º ÆÄÀÏÀÇ Á¤º¸´Â
ÀϹÝÀûÀÎ ¸ñÀûÀ¸·Îµµ ¾µ ¼ö ÀÖÀ¸¸ç ÄÚµå·Î ±¸¼º ÆÄÀÏÀÇ Á¤º¸¸¦ Á÷Á¢ ÀÐ¾î »ç¿ëÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ±×·¯³ª
ÄÚµå·Î º¯°æÇÏ´Â °ÍÀº º¸¾È»óÀÇ ¹®Á¦°¡ ÀÖ¾î ±ÝÁöµÇ¾î ÀÖÀ¸¸ç Àбâ Àü¿ëÀÇ Á¤º¸¶ó°í ÇÒ ¼ö ÀÖ´Ù.
±¸¼º ÆÄÀÏÀ» ÆíÁýÇÏ·Á¸é XML ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÏ´Â ¹ø°Å·Î¿òÀÌ ÀÖÁö¸¸
±×·¡¼ ´õ ½Ç¿ë¼ºÀÌ ÀÖ´Ù. »ç¿ëÀÚ°¡ ÇԺηΠº¯°æÇؼ´Â ¾ÈµÇ´Â Áß¿äÇÑ °í±Þ ¿É¼ÇÀÌ ÁÖ·Î ±¸¼º ÆÄÀÏ·Î ¹èÆ÷µÈ´Ù. ¹èÆ÷µÈ µðÆúÆ®´ë·Î ¾²Áö¸¸ °í±Þ »ç¿ëÀÚ´Â XML ÆÄÀÏÀ» ÆíÁýÇؼ¶óµµ
ÇÁ·Î±×·¥ÀÇ µ¿ÀÛÀ» Ä¿½ºÅ͸¶ÀÌ¡ÇÒ ¼ö ÀÖ´Ù. ¿øÇÑ´Ù¸é ÆíÁýÇϵµ·Ï ¹æ¹ýÀ» Á¦°øÇ쵂 ³Ê¹« ½±°Ô ¼öÁ¤Çϵµ·Ï
³»¹ö·Á µÎ°í ½ÍÁö ¾ÊÀ» ¶§ ±¸¼º ÆÄÀÏÀÌ Á¦°ÝÀÌ´Ù.
¾î¶² ÇÁ·Î±×·¥À̳ª »ç¿ëÀÚ°¡ ÇԺηΠ°Çµå·Á¼´Â ¾ÈµÇ´Â Áß¿äÇÑ Á¤º¸°¡ ÀÖ´Ù. Àß
¹Ù²îÁö ¾ÊÁö¸¸ ¾ÆÁÖ µå¹°°Ô ¹Ù²Ü ÇÊ¿ä°¡ Àְųª ¹è°æ Áö½ÄÀÌ ÀÖ¾î¾ß¸¸ Á¶Á¤ÇÒ ¼ö ÀÖ´Â À§ÇèÇÑ ¿É¼ÇÀÌ ±¸¼º ÆÄÀÏ¿¡ ÀúÀåµÈ´Ù. ¿î¿µÃ¼Á¦µµ ·¹Áö½ºÆ®¸®¸¦ µÚÁ® º¸¸é ÀÌ·± °í±Þ ¿É¼ÇÀÌ ²À²À ¼û°ÜÁ® ÀÖ°í ÀϺδ °ø°³µÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ ·¹Áö½ºÆ®¸®¸¦ À߸ø °Çµå·ÈÀ» ¶§ÀÇ Ã¥ÀÓÀº »ç¿ëÀÚ¿¡°Ô ÀÖ´Ù. °í±Þ
¿É¼ÇÀÌ Á¦¾îÆÇ¿¡ °ø°³µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀº ´Ù ±×¸¸ÇÑ ÀÌÀ¯°¡ ÀÖ´Ù.