У меня есть класс, который расширяет класс MarshalByRefObject.Я создаю HTTPChannel, регистрирую ChannelService и при чтении и записи свойств int и string все работает отлично.Мой класс общения выглядит следующим образом (обратите внимание, что оба класса являются только примером, но мой реальный проект выглядит действительно похожим):
public class MyCommunicationClass : MarshalByRefObject
{
public int IntegerValue {get; set;}
public string StringValue {get; set;}
public MyClass[] CustomValueArray {get; set;}
}
Моя проблема - исключение, которое возникает, когда я пытаюсь установить MyClass[] имущество.MyClass объявлен как:
[Serializable]
public class MyClass
{
public string StringValue {get; set;}
}
Я получаю следующее исключение: System.Security.SecurityException: Ошибка запроса. Трассировка стека показывает:
The method that caused the failure
was:
System.Runtime.Remoting.Channels.ServerProcessing
ProcessMessage(System.Runtime.Remoting.Channels.IServerChannelSinkStack,
System.Runtime.Remoting.Messaging.IMessage,
System.Runtime.Remoting.Channels.ITransportHeaders,
System.IO.Stream,
System.Runtime.Remoting.Messaging.IMessage
ByRef,
System.Runtime.Remoting.Channels.ITransportHeaders
ByRef, System.IO.Stream ByRef)
Aditionalпоказанная информация:
The action that failed was: Demand The
type of the first permission that
failed was:
System.Security.PermissionSet The
demand was for: <PermissionSet
class="System.Security.PermissionSet"
version="1" Unrestricted="true"/>
The only permitted permissions were:
<PermissionSet
class="System.Security.PermissionSet"
version="1"> <IPermission
class="System.Security.Permissions.SecurityPermission,
mscorlib, Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089"
version="1"
Flags="SerializationFormatter"/>
</PermissionSet>
Может кто-нибудь объяснить мне, что происходит и что я делаю неправильно?Спасибо!
РЕДАКТИРОВАТЬ: Это только проблема, когда я пытаюсь установить массив MyClass.Я могу назначить свойство MyClass Property в MyCommunicationClass без проблем.