You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

317 lines
16 KiB

<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Interface IValueConverter
</title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Interface IValueConverter
">
<meta name="generator" content="docfx 2.56.2.0">
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<link rel="stylesheet" href="../styles/fix.css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
<meta property="docfx:newtab" content="true">
</head> <body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="IPA.Config.Stores.IValueConverter">
<h1 id="IPA_Config_Stores_IValueConverter" data-uid="IPA.Config.Stores.IValueConverter" class="text-break">Interface IValueConverter
</h1>
<div class="markdown level0 summary"><p>The base interface for a value converter for use by objects generated by
<a class="xref" href="IPA.Config.Stores.GeneratedStore.html#IPA_Config_Stores_GeneratedStore_Generated__1_IPA_Config_Config_System_Boolean_">Generated&lt;T&gt;(Config, Boolean)</a>.</p>
</div>
<div class="markdown level0 conceptual"></div>
<h6><strong>Namespace</strong>: <a class="xref" href="IPA.Config.Stores.html">IPA.Config.Stores</a></h6>
<h6><strong>Assembly</strong>: IPA.Loader.dll</h6>
<h5 id="IPA_Config_Stores_IValueConverter_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IValueConverter</code></pre>
</div>
<h5 id="IPA_Config_Stores_IValueConverter_remarks"><strong>Remarks</strong></h5>
<div class="markdown level0 remarks"><p>
The object returned from <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_FromValue_IPA_Config_Data_Value_System_Object_">FromValue(Value, Object)</a>, if fed into <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_">ToValue(Object, Object)</a>,
should return equivalent <a class="xref" href="IPA.Config.Data.Value.html">Value</a> structures. Similarly, if the result of <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_">ToValue(Object, Object)</a>
is fed into <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_FromValue_IPA_Config_Data_Value_System_Object_">FromValue(Value, Object)</a>, the resulting object should be equivalent to the one passed to
<a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_">ToValue(Object, Object)</a>.
</p>
<p>
The <code>parent</code> parameter to <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_">ToValue(Object, Object)</a> and <a class="xref" href="IPA.Config.Stores.IValueConverter.html#IPA_Config_Stores_IValueConverter_FromValue_IPA_Config_Data_Value_System_Object_">FromValue(Value, Object)</a> should
be (ideally) the the top of the serialization tree, or some other generated object in that tree, rather than some arbitrary
object in the middle that is not managed by the generatd config system.
</p>
<p>
Converters do <em>not</em> need to perform null checks, as the serializer and deserializer will do that automatically.
</p>
</div>
<h3 id="properties">Properties
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_Stores_IValueConverter_Type.md&amp;value=---%0Auid%3A%20IPA.Config.Stores.IValueConverter.Type%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/ec36037b38fcfffd4ac587497e47c2c3934c9859/IPA.Loader/Config/Stores/ValueConverter.cs/#L45">View Source</a>
</span>
<a id="IPA_Config_Stores_IValueConverter_Type_" data-uid="IPA.Config.Stores.IValueConverter.Type*"></a>
<h4 id="IPA_Config_Stores_IValueConverter_Type" data-uid="IPA.Config.Stores.IValueConverter.Type">Type</h4>
<div class="markdown level1 summary"><p>Gets the type that this <a class="xref" href="IPA.Config.Stores.IValueConverter.html">IValueConverter</a> handles.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Type Type { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.type">Type</a></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_Stores_IValueConverter_FromValue_IPA_Config_Data_Value_System_Object_.md&amp;value=---%0Auid%3A%20IPA.Config.Stores.IValueConverter.FromValue(IPA.Config.Data.Value%2CSystem.Object)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/ec36037b38fcfffd4ac587497e47c2c3934c9859/IPA.Loader/Config/Stores/ValueConverter.cs/#L41">View Source</a>
</span>
<a id="IPA_Config_Stores_IValueConverter_FromValue_" data-uid="IPA.Config.Stores.IValueConverter.FromValue*"></a>
<h4 id="IPA_Config_Stores_IValueConverter_FromValue_IPA_Config_Data_Value_System_Object_" data-uid="IPA.Config.Stores.IValueConverter.FromValue(IPA.Config.Data.Value,System.Object)">FromValue(Value, Object)</h4>
<div class="markdown level1 summary"><p>Converts the given <a class="xref" href="IPA.Config.Data.Value.html">Value</a> to the object type handled by this converter.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">object FromValue(Value value, object parent)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="IPA.Config.Data.Value.html">Value</a></td>
<td><span class="parametername">value</span></td>
<td><p>the <a class="xref" href="IPA.Config.Data.Value.html">Value</a> to deserialize</p>
</td>
</tr>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></td>
<td><span class="parametername">parent</span></td>
<td><p>the object that will own the result</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></td>
<td><p>the deserialized object</p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_.md&amp;value=---%0Auid%3A%20IPA.Config.Stores.IValueConverter.ToValue(System.Object%2CSystem.Object)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/ec36037b38fcfffd4ac587497e47c2c3934c9859/IPA.Loader/Config/Stores/ValueConverter.cs/#L34">View Source</a>
</span>
<a id="IPA_Config_Stores_IValueConverter_ToValue_" data-uid="IPA.Config.Stores.IValueConverter.ToValue*"></a>
<h4 id="IPA_Config_Stores_IValueConverter_ToValue_System_Object_System_Object_" data-uid="IPA.Config.Stores.IValueConverter.ToValue(System.Object,System.Object)">ToValue(Object, Object)</h4>
<div class="markdown level1 summary"><p>Converts the given object to a <a class="xref" href="IPA.Config.Data.Value.html">Value</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Value ToValue(object obj, object parent)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></td>
<td><span class="parametername">obj</span></td>
<td><p>the object to convert</p>
</td>
</tr>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></td>
<td><span class="parametername">parent</span></td>
<td><p>the owning object of <code data-dev-comment-type="paramref" class="paramref">obj</code></p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="IPA.Config.Data.Value.html">Value</a></td>
<td><p>a representation of <code data-dev-comment-type="paramref" class="paramref">obj</code> as a <a class="xref" href="IPA.Config.Data.Value.html">Value</a> structure</p>
</td>
</tr>
</tbody>
</table>
<h3 id="extensionmethods">Extension Methods</h3>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_SetField__2___0_System_String___1_">ReflectionUtil.SetField&lt;T, U&gt;(T, String, U)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_GetField__2___1_System_String_">ReflectionUtil.GetField&lt;U, T&gt;(T, String)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_SetProperty__2___0_System_String___1_">ReflectionUtil.SetProperty&lt;T, U&gt;(T, String, U)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_GetProperty__2___1_System_String_">ReflectionUtil.GetProperty&lt;U, T&gt;(T, String)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_InvokeMethod__2___1_System_String_System_Object___">ReflectionUtil.InvokeMethod&lt;U, T&gt;(T, String, Object[])</a>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_Stores_IValueConverter.md&amp;value=---%0Auid%3A%20IPA.Config.Stores.IValueConverter%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
</li>
<li>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/ec36037b38fcfffd4ac587497e47c2c3934c9859/IPA.Loader/Config/Stores/ValueConverter.cs/#L26" class="contribution-link">View Source</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
<span>Generated by <strong>DocFX</strong></span>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>