Spring. NET 학습 노트 (3) - 등록 이벤트 주입
7299 단어 spring
<object id="source" type="Spring.Objects.TestObject, Spring.Core.Tests"/>
<object id="staticEventListener" type="Spring.Objects.TestEventHandler, Spring.Core.Tests">
<!-- wired up to a static event -->
<listener event="StaticClick" method="HandleEvent">
<ref type="Spring.Objects.TestObject, Spring.Core.Tests"/>
</listener>
</object>
<object id="instanceEventListener" type="Spring.Objects.TestEventHandler, Spring.Core.Tests">
<!-- wired up to an event exposed on an instance -->
<listener event="Click" method="HandleEvent">
<ref object="source"/>
</listener>
</object>
internal class TestEventHandler
{
public virtual void HandleEvent (object sender, EventArgs e)
{
_eventWasHandled = true;
}
public virtual bool EventWasHandled
{
get
{
return _eventWasHandled;
}
}
protected bool _eventWasHandled;
}
public event EventHandler Click;
public static event EventHandler StaticClick;
/// <summary>
/// Public method to programmatically raise the <event>Click</event> event
/// while testing.
/// </summary>
public void OnClick()
{
if (Click != null)
{
Click(this, EventArgs.Empty);
}
}
/// <summary>
/// Public method to programmatically raise the <b>static</b>
/// <event>Click</event> event while testing.
/// </summary>
public static void OnStaticClick()
{
if (TestObject.StaticClick != null)
{
TestObject.StaticClick(typeof (TestObject), EventArgs.Empty);
}
}
서버 테스트
[Test]
public virtual void InstanceEventWiring()
{
DefaultListableObjectFactory factory = new DefaultListableObjectFactory();
XmlObjectDefinitionReader reader = new XmlObjectDefinitionReader(factory);
reader.LoadObjectDefinitions(new ReadOnlyXmlTestResource("event-wiring.xml", GetType()));
ITestObject source = factory["source"] as ITestObject;
TestEventHandler instanceHandler = factory["instanceEventListener"] as TestEventHandler;
// raise the event... handlers should be notified at this point (obviously)
source.OnClick();
Assert.IsTrue(instanceHandler.EventWasHandled,
"The instance handler did not get notified when the instance event was raised (and was probably not wired up in the first place).");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.