本文整理汇总了C#中System.Web.OData.Formatter.Deserialization.ODataEntityDeserializer.Read方法的典型用法代码示例。如果您正苦于以下问题:C# ODataEntityDeserializer.Read方法的具体用法?C# ODataEntityDeserializer.Read怎么用?C# ODataEntityDeserializer.Read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.OData.Formatter.Deserialization.ODataEntityDeserializer
的用法示例。
在下文中一共展示了ODataEntityDeserializer.Read方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Read_ThrowsArgument_EntitysetMissing
public void Read_ThrowsArgument_EntitysetMissing()
{
var deserializer = new ODataEntityDeserializer(_deserializerProvider);
Assert.Throws<SerializationException>(
() => deserializer.Read(ODataTestUtil.GetMockODataMessageReader(), typeof(Product), new ODataDeserializerContext { Path = new ODataPath() }),
"The related entity set or singleton cannot be found from the OData path. The related entity set or singleton is required to deserialize the payload.");
}
示例2: Read_ThrowsArgumentNull_ReadContext
public void Read_ThrowsArgumentNull_ReadContext()
{
var deserializer = new ODataEntityDeserializer(_deserializerProvider);
Assert.ThrowsArgumentNull(
() => deserializer.Read(messageReader: ODataTestUtil.GetMockODataMessageReader(), type: typeof(Product), readContext: null),
"readContext");
}
示例3: Read_ThrowsArgumentNull_MessageReader
public void Read_ThrowsArgumentNull_MessageReader()
{
var deserializer = new ODataEntityDeserializer(_deserializerProvider);
Assert.ThrowsArgumentNull(
() => deserializer.Read(messageReader: null, type: typeof(Product), readContext: _readContext),
"messageReader");
}
示例4: Read_ThrowsArgument_ODataPathMissing
public void Read_ThrowsArgument_ODataPathMissing()
{
var deserializer = new ODataEntityDeserializer(_deserializerProvider);
Assert.ThrowsArgument(
() => deserializer.Read(ODataTestUtil.GetMockODataMessageReader(), typeof(Product), new ODataDeserializerContext()),
"readContext",
"The operation cannot be completed because no ODataPath is available for the request.");
}
示例5: CanDeserializerSingletonPayloadFromStream
public void CanDeserializerSingletonPayloadFromStream()
{
// Arrange
const string payload = "{" +
"\"@odata.context\":\"http://localhost/odata/$metadata#CEO\"," +
"\"EmployeeId\":789," +
"\"EmployeeName\":\"John Hark\"}";
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
// Act
EmployeeModel employee = deserializer.Read(
GetODataMessageReader(payload),
typeof(EmployeeModel),
_readContext) as EmployeeModel;
// Assert
Assert.NotNull(employee);
Assert.Equal(789, employee.EmployeeId);
Assert.Equal("John Hark", employee.EmployeeName);
}
示例6: Read_ThrowsOnUnknownEntityType
public void Read_ThrowsOnUnknownEntityType()
{
// Arrange
string content = Resources.SupplierRequestEntry;
IEdmEntityType supplierEntityType =
EdmTestHelpers.GetModel().FindType("ODataDemo.Supplier") as IEdmEntityType;
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
// Act & Assert
Assert.Throws<ODataException>(() => deserializer.Read(GetODataMessageReader(GetODataMessage(content), _edmModel),
typeof(Product), _readContext), "The property 'Concurrency' does not exist on type 'ODataDemo.Product'. Make sure to only use property names that are defined by the type.");
}
示例7: Read_PatchMode
public void Read_PatchMode()
{
// Arrange
string content = Resources.SupplierPatch;
IEdmEntityType supplierEntityType =
EdmTestHelpers.GetModel().FindType("ODataDemo.Supplier") as IEdmEntityType;
var readContext = new ODataDeserializerContext
{
Path = new ODataPath(new EntitySetPathSegment(_edmModel.EntityContainer.FindEntitySet("Suppliers"))),
Model = _edmModel,
ResourceType = typeof(Delta<Supplier>)
};
ODataEntityDeserializer deserializer =
new ODataEntityDeserializer(_deserializerProvider);
// Act
Delta<Supplier> supplier = deserializer.Read(GetODataMessageReader(GetODataMessage(content), _edmModel),
typeof(Delta<Supplier>), readContext) as Delta<Supplier>;
// Assert
Assert.NotNull(supplier);
Assert.Equal(supplier.GetChangedPropertyNames(), new string[] { "ID", "Name", "Address" });
Assert.Equal((supplier as dynamic).Name, "Supplier Name");
Assert.Equal("Supplier City", (supplier as dynamic).Address.City);
Assert.Equal("123456", (supplier as dynamic).Address.ZipCode);
}
示例8: ReadFromStreamAsync_ComplexTypeAndInlineData
public void ReadFromStreamAsync_ComplexTypeAndInlineData()
{
// Arrange
string content = Resources.SupplierRequestEntry;
IEdmEntityType supplierEntityType =
EdmTestHelpers.GetModel().FindType("ODataDemo.Supplier") as IEdmEntityType;
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
var readContext = new ODataDeserializerContext
{
Path = new ODataPath(new EntitySetPathSegment(_edmModel.EntityContainer.FindEntitySet("Suppliers"))),
Model = _edmModel,
ResourceType = typeof(Supplier)
};
// Act
Supplier supplier = deserializer.Read(GetODataMessageReader(GetODataMessage(content), _edmModel),
typeof(Supplier), readContext) as Supplier;
// Assert
Assert.Equal(supplier.Name, "Supplier Name");
Assert.NotNull(supplier.Products);
Assert.Equal(6, supplier.Products.Count);
Assert.Equal("soda", supplier.Products.ToList()[1].Name);
Assert.NotNull(supplier.Address);
Assert.Equal("Supplier City", supplier.Address.City);
Assert.Equal("123456", supplier.Address.ZipCode);
}
示例9: ReadFromStreamAsync
public void ReadFromStreamAsync()
{
// Arrange
string content = Resources.ProductRequestEntry;
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
// Act
Product product = deserializer.Read(GetODataMessageReader(GetODataMessage(content), _edmModel),
typeof(Product), _readContext) as Product;
// Assert
Assert.Equal(product.ID, 0);
Assert.Equal(product.Rating, 4);
Assert.Equal(product.Price, 2.5m);
Assert.Equal(product.ReleaseDate, new DateTimeOffset(new DateTime(1992, 1, 1, 0, 0, 0), TimeSpan.Zero));
Assert.Equal(product.PublishDate, new Date(1997, 7, 1));
Assert.Null(product.DiscontinuedDate);
}
示例10: Read_ThrowsOnUnknownEntityType
private void Read_ThrowsOnUnknownEntityType(string content, bool json, string expectedMessage)
{
IEdmEntityType supplierEntityType =
EdmTestHelpers.GetModel().FindType("ODataDemo.Supplier") as IEdmEntityType;
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
Assert.Throws<ODataException>(() => deserializer.Read(GetODataMessageReader(GetODataMessage(content, json), _edmModel),
typeof(Product), _readContext), expectedMessage);
}
示例11: ReadFromStreamAsync
private void ReadFromStreamAsync(string content, bool json)
{
ODataEntityDeserializer deserializer = new ODataEntityDeserializer(_deserializerProvider);
Product product = deserializer.Read(GetODataMessageReader(GetODataMessage(content, json), _edmModel),
typeof(Product), _readContext) as Product;
Assert.Equal(product.ID, 0);
Assert.Equal(product.Rating, 4);
Assert.Equal(product.Price, 2.5m);
Assert.Equal(product.ReleaseDate, new DateTimeOffset(new DateTime(1992, 1, 1, 0, 0, 0), TimeSpan.Zero));
Assert.Null(product.DiscontinuedDate);
}