


# ProxyController&lt;T> constructor







ProxyController&lt;T>({String $serviceName, String $interfaceName})


<p>Creates proxy controller.</p>
<p>Proxy controllers are not typically created directly. Instead, you
typically obtain a <a href="../../package-fidl_fidl/ProxyController-class.md">ProxyController&lt;T&gt;</a> object as the <a href="../../package-fidl_fidl/Proxy/ctrl.md">Proxy&lt;T&gt;.ctrl</a>
property of a <code>TProxy</code> object.</p>



## Implementation

```dart
ProxyController({this.$serviceName, this.$interfaceName}) {
  _reader
    ..onReadable = _handleReadable
    ..onError = _handleError;
}
```







