File tree Expand file tree Collapse file tree 2 files changed +19
-3
lines changed
BsonUnitTests/DefaultSerializer/Serializers
Bson/Serialization/Serializers Expand file tree Collapse file tree 2 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -1980,7 +1980,7 @@ public override object Deserialize(
1980
1980
bsonReader . ReadNull ( ) ;
1981
1981
return null ;
1982
1982
case BsonType . String :
1983
- return new Uri ( bsonReader . ReadString ( ) ) ;
1983
+ return new Uri ( bsonReader . ReadString ( ) , UriKind . RelativeOrAbsolute ) ;
1984
1984
default :
1985
1985
var message = string . Format ( "Cannot deserialize Uri from BsonType {0}." , bsonType ) ;
1986
1986
throw new FileFormatException ( message ) ;
@@ -2006,7 +2006,7 @@ public override void Serialize(
2006
2006
}
2007
2007
else
2008
2008
{
2009
- bsonWriter . WriteString ( ( ( Uri ) value ) . AbsoluteUri ) ;
2009
+ bsonWriter . WriteString ( ( ( Uri ) value ) . OriginalString ) ;
2010
2010
}
2011
2011
}
2012
2012
}
Original file line number Diff line number Diff line change @@ -1786,14 +1786,30 @@ public void TestHttp()
1786
1786
V = new Uri ( "http://www.cnn.com" )
1787
1787
} ;
1788
1788
var json = obj . ToJson ( ) ;
1789
- var expected = "{ 'V' : 'http://www.cnn.com/ ' }" . Replace ( "'" , "\" " ) ;
1789
+ var expected = "{ 'V' : 'http://www.cnn.com' }" . Replace ( "'" , "\" " ) ;
1790
1790
Assert . AreEqual ( expected , json ) ;
1791
1791
1792
1792
var bson = obj . ToBson ( ) ;
1793
1793
var rehydrated = BsonSerializer . Deserialize < TestClass > ( bson ) ;
1794
1794
Assert . IsTrue ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
1795
1795
}
1796
1796
1797
+ [ Test ]
1798
+ public void TestRelative ( )
1799
+ {
1800
+ var obj = new TestClass
1801
+ {
1802
+ V = new Uri ( "/relative/page.html" , UriKind . RelativeOrAbsolute )
1803
+ } ;
1804
+ var json = obj . ToJson ( ) ;
1805
+ var expected = "{ 'V' : '/relative/page.html' }" . Replace ( "'" , "\" " ) ;
1806
+ Assert . AreEqual ( expected , json ) ;
1807
+
1808
+ var bson = obj . ToBson ( ) ;
1809
+ var rehydrated = BsonSerializer . Deserialize < TestClass > ( bson ) ;
1810
+ Assert . IsTrue ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
1811
+ }
1812
+
1797
1813
[ Test ]
1798
1814
public void TestMongoDB ( )
1799
1815
{
You can’t perform that action at this time.
0 commit comments