New test.
[mono.git] / mcs / class / System.Web.Mvc2 / System.Web.Mvc / ViewDataInfo.cs
1 /* ****************************************************************************\r
2  *\r
3  * Copyright (c) Microsoft Corporation. All rights reserved.\r
4  *\r
5  * This software is subject to the Microsoft Public License (Ms-PL). \r
6  * A copy of the license can be found in the license.htm file included \r
7  * in this distribution.\r
8  *\r
9  * You must not remove this notice, or any other, from this software.\r
10  *\r
11  * ***************************************************************************/\r
12 \r
13 namespace System.Web.Mvc {\r
14     using System;\r
15     using System.ComponentModel;\r
16 \r
17     public class ViewDataInfo {\r
18 \r
19         private object _value;\r
20         private Func<object> _valueAccessor;\r
21 \r
22         public ViewDataInfo() {\r
23         }\r
24 \r
25         public ViewDataInfo(Func<object> valueAccessor) {\r
26             _valueAccessor = valueAccessor;\r
27         }\r
28 \r
29         public object Container {\r
30             get;\r
31             set;\r
32         }\r
33 \r
34         public PropertyDescriptor PropertyDescriptor {\r
35             get;\r
36             set;\r
37         }\r
38 \r
39         public object Value {\r
40             get {\r
41                 if (_valueAccessor != null) {\r
42                     _value = _valueAccessor();\r
43                     _valueAccessor = null;\r
44                 }\r
45 \r
46                 return _value;\r
47             }\r
48             set {\r
49                 _value = value;\r
50                 _valueAccessor = null;\r
51             }\r
52         }\r
53 \r
54     }\r
55 }\r