Обслуживаемый компонент.Net с обработкой событий

Я пытаюсь сделать вне.NET DLL; используя пример кода, я могу сделать COM DLL вне процесса. Тем не менее, я сталкиваюсь с некоторыми проблемами при реализации обработки событий.

Согласно коду, следующее событие предоставляется компонентом:

Public Event FloatPropertyChanging(ByVal NewValue As Single, ByRef Cancel As Boolean)

Обработка этого события в приложении VB.Net Form вызывает исключение. Ниже приведены подробности:

Dim tempObj As New VBServicedComponent.SimpleObject()

AddHandler tempObj.FloatPropertyChanging, AddressOf FloatPropertyChangingEventHandler // **Throws Exception!!!**
tempObj.FloatProperty = 4

Детали исключения:

System.Reflection.TargetInvocationException:-
Exception has been thrown by the target of an invocation

Трассировки стека:

в System.RuntimeMethodHandle.SerializationInvoke(метод IRuntimeMethodInfo, цель объекта, информация SerializationInfo, StreamingContext& context) в System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(объектный объект, информация о Serialization.Of.bjectSign.OF). Держатель ObjectHolder) в System.Runtime.Serialization.ObjectManager.DoFixups() в System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(обработчик HeaderHandler, __BinaryParser serParser, логический метод fCheck, логический метод SystemCallServiceMearChoperShoperCodeCard) для домена ComponentSerializer.UnmarshalFromBuffer(Byte[] b, Object tp) в System.EnterpriseServices.ComponentServices.ConvertToMessage(String s, Object tp) в System.EnterpriseServices.ServicedComponent.RemoteDispatchHerviceServiceSer.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) в System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) в System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(мессенджер IMessage.Temp..SimpleObject.add_FloatPropertyChanging(FloatPropertyChangingEventHandler obj) в TestApp.modMain.Main() в D:\Meridia\MeridiaAPI\COMPlusServices\TestApp\Module1.vb: строка 34

Внутреннее исключение:

Could not load file or assembly 'TestApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.":"TestApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Трассировки стека:

на System.Reflection.RuntimeAssembly._nLoad(AssemblyName имя_файла, струнного CodeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& ​​stackMark, IntPtr pPrivHostBinder, булевой throwOnFileNotFound, Boolean, Boolean forIntrospection suppressSecurityChecks) при System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& ​​stackMark, IntPtr pPrivHostBinder, булева throwOnFileNotFound, булева forIntrospection, булевы suppressSecurityChecks) при System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, фактические данные assemblySecurity, StackCrawlMark& ​​stackMark, IntPtr pPrivHostBinder, булева forIntrospection) при System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& ​​stackMark, Boolean forIntrospection) в System.Reflection.Assembly.Load(String assemblyString) в System.Runtime.Serialization.FormatterServices.LoadAssemblyFromString(String assemblyName) в System.Reflection.MemberInfoSerializationHolder..ctor(информация SerializationInfo, контекст StreamingContext)

Есть ли что-то, чего мне не хватает в конце TestApp при обработке события? Если да, что было бы правильно обработать такое событие?

Заранее спасибо.

0 ответов

Другие вопросы по тегам