Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
6f5ff5e
code optimization
ymh199478 Nov 30, 2017
49e907a
trigger bug fixed
ymh199478 Nov 30, 2017
b180a5b
add method container
ymh199478 Dec 1, 2017
bda4ee2
project update
ymh199478 Dec 1, 2017
2b4e9ca
add bindable
ymh199478 Dec 1, 2017
73c7d62
add delegate call
ymh199478 Dec 1, 2017
792f904
add wrap function
ymh199478 Dec 1, 2017
919364b
interface update
ymh199478 Dec 1, 2017
45d2021
Merge branch 'master' into feature/method-container
ymh199478 Dec 1, 2017
e9e8395
add unit test
ymh199478 Dec 2, 2017
ef3de06
container inject optimization
ymh199478 Dec 2, 2017
7a9956b
add unit test
ymh199478 Dec 2, 2017
50694f7
container optimization
ymh199478 Dec 2, 2017
dd7ea7a
container test update
ymh199478 Dec 2, 2017
22532e7
container optimization
ymh199478 Dec 2, 2017
1e010be
container reslove process update(undone)
ymh199478 Dec 2, 2017
cf6c104
add exception
ymh199478 Dec 2, 2017
ac2af72
container update(undone)
ymh199478 Dec 2, 2017
72ffadd
container optimization
ymh199478 Dec 3, 2017
63db3e8
container optimization
ymh199478 Dec 3, 2017
caa9fc6
add dict class
ymh199478 Dec 3, 2017
fe44010
container optimization
ymh199478 Dec 3, 2017
ea1b02a
add dict unit test
ymh199478 Dec 3, 2017
cfe3cf4
add rebound(undone)
ymh199478 Dec 3, 2017
45daded
container update
ymh199478 Dec 3, 2017
0cd9e82
add watch
ymh199478 Dec 3, 2017
af2c20e
rewrite BindIf api
ymh199478 Dec 3, 2017
21edd12
container optimization
ymh199478 Dec 3, 2017
c6eee54
container optimization
ymh199478 Dec 3, 2017
069d8db
add rebound unit test
ymh199478 Dec 4, 2017
99d4f4b
exception message update
ymh199478 Dec 5, 2017
686ad5a
container update
ymh199478 Dec 5, 2017
e59f769
code optimization (remove unused code)
ymh199478 Dec 6, 2017
218a3f5
add unit test
ymh199478 Dec 7, 2017
0632683
remove Container.MakeWith
ymh199478 Dec 7, 2017
a2123df
bug fixed
ymh199478 Dec 7, 2017
c5b8287
method container update
ymh199478 Dec 7, 2017
2f8eb17
method container update(undone)
ymh199478 Dec 8, 2017
4250a96
container optimization
ymh199478 Dec 8, 2017
3d66deb
container optimization
ymh199478 Dec 8, 2017
f0cd46c
container optimization
ymh199478 Dec 9, 2017
37e01ba
sync App interface
ymh199478 Dec 9, 2017
e2140a4
change to static class
ymh199478 Dec 9, 2017
be1ed09
add unit test
ymh199478 Dec 9, 2017
824f7ce
method container update
ymh199478 Dec 10, 2017
1d90edd
container add flash function
ymh199478 Dec 10, 2017
3e905d3
add method container unit test
ymh199478 Dec 10, 2017
b62fc01
container optimization
ymh199478 Dec 12, 2017
1a4ce62
container optimization
ymh199478 Dec 12, 2017
ae38445
container semantic optimization
ymh199478 Dec 12, 2017
bc19e0e
container optimization & bug fixed
ymh199478 Dec 12, 2017
8728874
container optimization
ymh199478 Dec 12, 2017
ca4d223
bug fixed
ymh199478 Dec 12, 2017
0d9e8c8
bug fixed
ymh199478 Dec 12, 2017
f138974
container optimization
ymh199478 Dec 12, 2017
7e49f02
bug fixed
ymh199478 Dec 13, 2017
ebe27bf
unit test update
ymh199478 Dec 13, 2017
d3bd2a3
container optimization
ymh199478 Dec 13, 2017
76fa0e6
method container update
ymh199478 Dec 14, 2017
883eb9b
readme update
ymh199478 Dec 14, 2017
d8db4ca
dispatcher rebuild
ymh199478 Dec 14, 2017
e291088
event rebuild
ymh199478 Dec 15, 2017
61d1721
event rebuild
ymh199478 Dec 15, 2017
783e797
events add unit test
ymh199478 Dec 15, 2017
1aa6995
Merge branch 'feature/events' into 1.2
ymh199478 Dec 15, 2017
f2d6057
container update
ymh199478 Dec 16, 2017
e43e52e
container update
ymh199478 Dec 17, 2017
191d2c5
container update
ymh199478 Dec 20, 2017
9a3e650
Merge branch 'feature/events' of https://github.com/CatLib/Core into …
ymh199478 Dec 20, 2017
fab447d
container update
ymh199478 Dec 20, 2017
59b545c
container add param name inject
ymh199478 Dec 28, 2017
0c1c392
Merge branch 'feature/events' of https://github.com/catlib/core into …
ymh199478 Dec 28, 2017
c78397c
Merge pull request #15 from CatLib/feature/events
Dec 28, 2017
91e34cc
assembly info update to 1.2
ymh199478 Dec 28, 2017
4fc1d55
Merge branch '1.2' of https://github.com/catlib/core into 1.2
ymh199478 Dec 28, 2017
81ea235
container optimization
ymh199478 Dec 29, 2017
72b61f1
add variant type support
ymh199478 Dec 29, 2017
17e1fd4
watch extend
ymh199478 Jan 9, 2018
a5520ae
facade support watch sync
ymh199478 Jan 9, 2018
6837dcf
container call function support static function
ymh199478 Jan 9, 2018
d4f598c
facade test update
ymh199478 Jan 9, 2018
eaf188e
app support inherit
ymh199478 Jan 10, 2018
b342e74
app update
ymh199478 Jan 10, 2018
0e86933
app update
ymh199478 Jan 10, 2018
8c8672a
bug fixed
ymh199478 Jan 11, 2018
9042953
container optimization
ymh199478 Jan 11, 2018
11e4d17
container optimization
ymh199478 Jan 12, 2018
b99c99a
container optimization
ymh199478 Jan 13, 2018
47bb5ce
container optimization
ymh199478 Jan 13, 2018
0bee29a
container support IDisposable
ymh199478 Jan 15, 2018
6d8d208
container extend perfect
ymh199478 Jan 16, 2018
6d0d686
add flush check
ymh199478 Jan 16, 2018
7c654df
lru cache update
ymh199478 Jan 17, 2018
0c05cc4
lrucache update
ymh199478 Jan 17, 2018
680ecf0
container update
ymh199478 Jan 20, 2018
145d4e0
remove lrucache
ymh199478 Jan 20, 2018
17494fe
facade add binder check
ymh199478 Jan 20, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
**使用Nuget安装**

```PM
Install-Package CatLib.Core -Version 1.1.4
Install-Package CatLib.Core -Version 1.2.0
```

**直接下载发布版本**
Expand Down
30 changes: 17 additions & 13 deletions src/CatLib.Core.NetStandard/CatLib.Core.NetStandard.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -65,26 +65,32 @@
<Compile Include="..\CatLib.Core\CatLib\IServiceProviderType.cs" Link="CatLib\IServiceProviderType.cs" />
<Compile Include="..\CatLib.Core\Support\Attribute\ExcludeFromCodeCoverageAttribute.cs" Link="Support\Attribute\ExcludeFromCodeCoverageAttribute.cs" />
<Compile Include="..\CatLib.Core\Support\Attribute\PriorityAttribute.cs" Link="Support\Attribute\PriorityAttribute.cs" />
<Compile Include="..\CatLib.Core\Support\Container\Bindable.cs" Link="Support\Container\Bindable.cs" />
<Compile Include="..\CatLib.Core\Support\Container\BindData.cs" Link="Support\Container\BindData.cs" />
<Compile Include="..\CatLib.Core\Support\Container\Container.cs" Link="Support\Container\Container.cs" />
<Compile Include="..\CatLib.Core\Support\Container\ContainerExtend.cs" Link="Support\Container\ContainerExtend.cs" />
<Compile Include="..\CatLib.Core\Support\Container\GivenData.cs" Link="Support\Container\GivenData.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IBindable.cs" Link="Support\Container\IBindable.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IBindData.cs" Link="Support\Container\IBindData.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IContainer.cs" Link="Support\Container\IContainer.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IGivenData.cs" Link="Support\Container\IGivenData.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IMethodBind.cs" Link="Support\Container\IMethodBind.cs" />
<Compile Include="..\CatLib.Core\Support\Container\InjectAttribute.cs" Link="Support\Container\InjectAttribute.cs" />
<Compile Include="..\CatLib.Core\Support\Container\Internal\IBindData.cs" Link="Support\Container\Internal\IBindData.cs" />
<Compile Include="..\CatLib.Core\Support\Container\Internal\IGivenData.cs" Link="Support\Container\Internal\IGivenData.cs" />
<Compile Include="..\CatLib.Core\Support\Dispatcher\Dispatcher.cs" Link="Support\Dispatcher\Dispatcher.cs" />
<Compile Include="..\CatLib.Core\Support\Dispatcher\EventHandler.cs" Link="Support\Dispatcher\EventHandler.cs" />
<Compile Include="..\CatLib.Core\Support\Dispatcher\IDispatcher.cs" Link="Support\Dispatcher\IDispatcher.cs" />
<Compile Include="..\CatLib.Core\Support\Dispatcher\IEventHandler.cs" Link="Support\Dispatcher\IEventHandler.cs" />
<Compile Include="..\CatLib.Core\Support\Container\IVariant.cs" Link="Support\Container\IVariant.cs" />
<Compile Include="..\CatLib.Core\Support\Container\MethodBind.cs" Link="Support\Container\MethodBind.cs" />
<Compile Include="..\CatLib.Core\Support\Container\MethodContainer.cs" Link="Support\Container\MethodContainer.cs" />
<Compile Include="..\CatLib.Core\Support\Container\Params.cs" Link="Support\Container\Params.cs" />
<Compile Include="..\CatLib.Core\Support\Container\UnresolvableException.cs" Link="Support\Container\UnresolvableException.cs" />
<Compile Include="..\CatLib.Core\Support\Events\Dispatcher.cs" Link="Support\Events\Dispatcher.cs" />
<Compile Include="..\CatLib.Core\Support\Events\DispatcherExtend.cs" Link="Support\Events\DispatcherExtend.cs" />
<Compile Include="..\CatLib.Core\Support\Events\Event.cs" Link="Support\Events\Event.cs" />
<Compile Include="..\CatLib.Core\Support\Events\IDispatcher.cs" Link="Support\Events\IDispatcher.cs" />
<Compile Include="..\CatLib.Core\Support\Events\IEvent.cs" Link="Support\Events\IEvent.cs" />
<Compile Include="..\CatLib.Core\Support\Exception\AssertException.cs" Link="Support\Exception\AssertException.cs" />
<Compile Include="..\CatLib.Core\Support\Exception\RuntimeException.cs" Link="Support\Exception\RuntimeException.cs" />
<Compile Include="..\CatLib.Core\Support\FilterChain\FilterChain.cs" Link="Support\FilterChain\FilterChain.cs" />
<Compile Include="..\CatLib.Core\Support\FilterChain\IFilterChain.cs" Link="Support\FilterChain\IFilterChain.cs" />
<Compile Include="..\CatLib.Core\Support\Guard\Guard.cs" Link="Support\Guard\Guard.cs" />
<Compile Include="..\CatLib.Core\Support\LruCache\CacheNode.cs" Link="Support\LruCache\CacheNode.cs" />
<Compile Include="..\CatLib.Core\Support\LruCache\ILruCache.cs" Link="Support\LruCache\ILruCache.cs" />
<Compile Include="..\CatLib.Core\Support\LruCache\LruCache.cs" Link="Support\LruCache\LruCache.cs" />
<Compile Include="..\CatLib.Core\Support\QuickList\InternalList.cs" Link="Support\QuickList\InternalList.cs" />
<Compile Include="..\CatLib.Core\Support\QuickList\IQuickList.cs" Link="Support\QuickList\IQuickList.cs" />
<Compile Include="..\CatLib.Core\Support\QuickList\QuickList.cs" Link="Support\QuickList\QuickList.cs" />
Expand All @@ -99,6 +105,7 @@
<Compile Include="..\CatLib.Core\Support\Template\SingleManaged.cs" Link="Support\Template\SingleManaged.cs" />
<Compile Include="..\CatLib.Core\Support\Template\SingleManager.cs" Link="Support\Template\SingleManager.cs" />
<Compile Include="..\CatLib.Core\Support\Util\Arr.cs" Link="Support\Util\Arr.cs" />
<Compile Include="..\CatLib.Core\Support\Util\Dict.cs" Link="Support\Util\Dict.cs" />
<Compile Include="..\CatLib.Core\Support\Util\Enum.cs" Link="Support\Util\Enum.cs" />
<Compile Include="..\CatLib.Core\Support\Util\IAwait.cs" Link="Support\Util\IAwait.cs" />
<Compile Include="..\CatLib.Core\Support\Util\IReferenceCount.cs" Link="Support\Util\IReferenceCount.cs" />
Expand All @@ -113,16 +120,13 @@
<Folder Include="..\CatLib.Core\Properties\" />
<Folder Include="CatLib\" />
<Folder Include="Support\Attribute\" />
<Folder Include="Support\Container\Internal\" />
<Folder Include="Support\Dispatcher\" />
<Folder Include="Support\Events\" />
<Folder Include="Support\Exception\" />
<Folder Include="Support\FilterChain\" />
<Folder Include="Support\Guard\" />
<Folder Include="Support\LruCache\" />
<Folder Include="Support\QuickList\" />
<Folder Include="Support\SortSet\" />
<Folder Include="Support\Template\" />
<Folder Include="Support\Util\" />
</ItemGroup>

</Project>
4 changes: 3 additions & 1 deletion src/CatLib.Core.Tests/CatLib.Core.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
<ItemGroup>
<Compile Include="CatLib\ApplicationTests.cs" />
<Compile Include="CatLib\FacaedTests.cs" />
<Compile Include="Support\Container\ContainerPerformanceTests.cs" />
<Compile Include="Support\Container\MethodContainerTests.cs" />
<Compile Include="Support\Dispatcher\DispatcherTests.cs" />
<Compile Include="ExceptionAssert.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
Expand All @@ -44,13 +46,13 @@
<Compile Include="Support\Container\ContainerTests.cs" />
<Compile Include="Support\Container\GivenDataTests.cs" />
<Compile Include="Support\FilterChain\FilterChainTests.cs" />
<Compile Include="Support\LruCache\LruCacheTests.cs" />
<Compile Include="Support\QuickList\InternalListTests.cs" />
<Compile Include="Support\QuickList\QuickListTests.cs" />
<Compile Include="Support\SortSet\SortSetTests.cs" />
<Compile Include="Support\Template\ManagerTests.cs" />
<Compile Include="Support\Template\SingleManagerTests.cs" />
<Compile Include="Support\Util\ArrTests.cs" />
<Compile Include="Support\Util\DictTests.cs" />
<Compile Include="Support\Util\EnumTests.cs" />
<Compile Include="Support\Util\ReferenceCountTests.cs" />
<Compile Include="Support\Util\StrTests.cs" />
Expand Down
15 changes: 11 additions & 4 deletions src/CatLib.Core.Tests/CatLib/ApplicationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,9 @@ public void GetVersionTest()
public void MakeAssemblyClass()
{
var app = new Application();
var lru = app.MakeWith<LruCache<string, string>>(10);
var sortSet = app.Make<SortSet<string, string>>();

Assert.AreNotEqual(null, lru);
Assert.AreNotEqual(null, sortSet);
}

[TestMethod]
Expand All @@ -131,7 +131,7 @@ public void TestOn()
var app = new Application();
ExceptionAssert.DoesNotThrow(() =>
{
app.On("hello", (o) => { });
app.On("hello", () => { });
});
}

Expand All @@ -145,6 +145,13 @@ public void GetCurrentProcess()
Assert.AreEqual(Application.StartProcess.Inited, app.Process);
}

[TestMethod]
public void TestDebugLevel()
{
App.DebugLevel = DebugLevels.Dev;
Assert.AreEqual(DebugLevels.Dev, App.DebugLevel);
}

/// <summary>
/// 重复的引导测试
/// </summary>
Expand Down Expand Up @@ -302,7 +309,7 @@ public void TestOnDispatcher()
{
var app = MakeApplication();

app.Listen("testevent", (payload) =>
app.Listen("testevent", (object payload) =>
{
Assert.AreEqual("abc", payload);
return 123;
Expand Down
171 changes: 165 additions & 6 deletions src/CatLib.Core.Tests/CatLib/FacaedTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,90 @@ namespace CatLib.Tests
[TestClass]
public class FacaedTests
{
public class FacaedTestClass : IFacaedTestClass
{
}

public interface IFacaedTestClass
{
}
public class TestClassFacade : Facade<IFacaedTestClass>
{

}

public class TestClassFacadeError : Facade<FacaedTestClass>
{

}

public class FacaedTestClass
[TestMethod]
public void FacadeErrorTest()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>();

var isError = false;
try
{
var data = TestClassFacadeError.Instance;
}
catch (TypeInitializationException)
{
isError = true;
}

Assert.AreEqual(true, isError);
}

public class TestClassFacaed : Facade<FacaedTestClass>
[TestMethod]
public void FacadeWatchTest()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();
var old = TestClassFacade.Instance;
app.Unbind<FacaedTestClass>();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();

Assert.AreNotSame(old, TestClassFacade.Instance);
}

[TestMethod]
public void FacadeWatchTestWithInstance()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();

var cls = new FacaedTestClass();
app.Instance<FacaedTestClass>(cls);

Assert.AreSame(cls, TestClassFacade.Instance);
}

[TestMethod]
public void FacadeMakeFaild()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();
var old = TestClassFacade.Instance;

Assert.AreNotEqual(null, old);
app.Unbind<FacaedTestClass>();

var isError = false;
try
{
var data = TestClassFacade.Instance;
}
catch (UnresolvableException)
{
isError = true;
}
Assert.AreEqual(true, isError);
}

/// <summary>
Expand All @@ -36,15 +111,99 @@ public void FacadeTest()
{
var app = new Application();
app.Bootstrap();
var obj = new FacaedTestClass();
IFacaedTestClass obj = new FacaedTestClass();
app.Singleton<FacaedTestClass>((c, p) =>
{
return obj;
});
}).Alias<IFacaedTestClass>();

Assert.AreEqual(obj, TestClassFacaed.Instance);
Assert.AreSame(obj, TestClassFacade.Instance);
//double run
Assert.AreEqual(obj, TestClassFacaed.Instance);
Assert.AreSame(obj, TestClassFacade.Instance);
Assert.AreSame(obj, TestClassFacade.Instance);
}

[TestMethod]
public void FacadeReleaseTest()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();

var data = TestClassFacade.Instance;
Assert.AreSame(data, TestClassFacade.Instance);
app.Release<IFacaedTestClass>();
Assert.AreNotSame(data, TestClassFacade.Instance);
}

[TestMethod]
public void TestNotStaticBindFacade()
{
var app = new Application();
app.Bootstrap();
app.Bind<FacaedTestClass>().Alias<IFacaedTestClass>();

var data = TestClassFacade.Instance;
Assert.AreNotSame(data, TestClassFacade.Instance);
Assert.AreNotSame(TestClassFacade.Instance, TestClassFacade.Instance);
}

[TestMethod]
public void TestBindingStateSwitchSingletonToBind()
{
var app = new Application();
app.Bootstrap();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();

var data = TestClassFacade.Instance;
Assert.AreSame(data, TestClassFacade.Instance);

app.Unbind<IFacaedTestClass>();
app.Bind<FacaedTestClass>().Alias<IFacaedTestClass>();
Assert.AreNotSame(data, TestClassFacade.Instance);
Assert.AreNotSame(TestClassFacade.Instance, TestClassFacade.Instance);
}

[TestMethod]
public void TestBindingStateSwitchBindToSingleton()
{
var app = new Application();
app.Bootstrap();
app.Bind<FacaedTestClass>().Alias<IFacaedTestClass>();

var data = TestClassFacade.Instance;
Assert.AreNotSame(data, TestClassFacade.Instance);
Assert.AreNotSame(TestClassFacade.Instance, TestClassFacade.Instance);

app.Unbind<IFacaedTestClass>();
app.Singleton<FacaedTestClass>().Alias<IFacaedTestClass>();
data = TestClassFacade.Instance;
Assert.AreSame(data, TestClassFacade.Instance);
Assert.AreSame(TestClassFacade.Instance, TestClassFacade.Instance);
}

[TestMethod]
public void TestNotBind()
{
var app = new Application();
app.Bootstrap();
app.Instance<IFacaedTestClass>(new FacaedTestClass());

var data = TestClassFacade.Instance;
Assert.AreSame(data, TestClassFacade.Instance);

app.Release<IFacaedTestClass>();

var isError = false;
try
{
data = TestClassFacade.Instance;
}
catch (UnresolvableException)
{
isError = true;
}
Assert.AreEqual(true, isError);
}
}
}
4 changes: 2 additions & 2 deletions src/CatLib.Core.Tests/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@

[assembly: Guid("3c9f4024-910c-4881-a04d-34a6c3a09019")]

[assembly: AssemblyVersion("1.1.4.0")]
[assembly: AssemblyFileVersion("1.1.4.0")]
[assembly: AssemblyVersion("1.2.0.0")]
[assembly: AssemblyFileVersion("1.2.0.0")]
14 changes: 9 additions & 5 deletions src/CatLib.Core.Tests/Support/Container/BindDataTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ public void CanAddOnResolving()

bindData.OnResolving((bind, obj) => null);

var data = bindData.ExecResolvingDecorator(new Container());
var data = bindData.TriggerResolving(new Container());
Assert.AreEqual(null, data);
}

Expand All @@ -194,7 +194,7 @@ public void CheckIllegalResolving()
}
#endregion

#region UnBind
#region Unbind
/// <summary>
/// 能够正常解除绑定
/// </summary>
Expand All @@ -205,8 +205,12 @@ public void CanUnBind()
var bindData = container.Bind("CanUnBind", (app, param) => "hello world", false);

Assert.AreEqual("hello world", container.Make("CanUnBind").ToString());
bindData.UnBind();
Assert.AreEqual(null, container.Make("CanUnBind"));
bindData.Unbind();

ExceptionAssert.Throws<UnresolvableException>(() =>
{
container.Make("CanUnBind");
});
}

/// <summary>
Expand All @@ -217,7 +221,7 @@ public void CheckIllegalUnBindInput()
{
var container = new Container();
var bindData = container.Bind("CanUnBind", (app, param) => "hello world", false);
bindData.UnBind();
bindData.Unbind();

ExceptionAssert.Throws<RuntimeException>(() =>
{
Expand Down
Loading