@@ -16,22 +16,35 @@ public class DynamicReference : DynamicObject, IEquatable<DynamicReference>
1616 private readonly string _name ;
1717 private readonly DynamicReference _owner ;
1818 private readonly DataStrategy _dataStrategy ;
19+ private readonly string _alias ;
1920
20- internal DynamicReference ( string name )
21+ internal DynamicReference ( string name ) : this ( name , null , null , null )
2122 {
22- _name = name ;
2323 }
2424
25- internal DynamicReference ( string name , DynamicReference owner )
25+ internal DynamicReference ( string name , DynamicReference owner ) : this ( name , owner , null , null )
26+ {
27+ }
28+
29+ internal DynamicReference ( string name , DataStrategy dataStrategy ) : this ( name , null , dataStrategy , null )
30+ {
31+ }
32+
33+ internal DynamicReference ( string name , DynamicReference owner , DataStrategy dataStrategy ) : this ( name , owner , dataStrategy , null )
2634 {
27- _name = name ;
28- _owner = owner ;
2935 }
3036
31- internal DynamicReference ( string name , DataStrategy dataStrategy )
37+ internal DynamicReference ( string name , DynamicReference owner , DataStrategy dataStrategy , string alias )
3238 {
3339 _name = name ;
40+ _owner = owner ;
3441 _dataStrategy = dataStrategy ;
42+ _alias = alias ;
43+ }
44+
45+ public string Alias
46+ {
47+ get { return _alias ; }
3548 }
3649
3750 /// <summary>
@@ -57,6 +70,11 @@ public string GetName()
5770 return _name ;
5871 }
5972
73+ public DynamicReference As ( string alias )
74+ {
75+ return new DynamicReference ( _name , _owner , _dataStrategy , alias ) ;
76+ }
77+
6078 public override bool TryInvokeMember ( InvokeMemberBinder binder , object [ ] args , out object result )
6179 {
6280 if ( _dataStrategy != null )
0 commit comments