[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Reflection MemberInfoS
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Reflection MemberInfoSerializationHolder.cs, 1.1, 1.2 |
Date: |
Fri, 22 Aug 2003 00:14:16 -0400 |
Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System/Reflection
In directory subversions:/tmp/cvs-serv7297/runtime/System/Reflection
Modified Files:
MemberInfoSerializationHolder.cs
Log Message:
De-serialization support for member reflection classes.
Index: MemberInfoSerializationHolder.cs
===================================================================
RCS file:
/cvsroot/dotgnu-pnet/pnetlib/runtime/System/Reflection/MemberInfoSerializationHolder.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** MemberInfoSerializationHolder.cs 22 Aug 2003 03:04:07 -0000 1.1
--- MemberInfoSerializationHolder.cs 22 Aug 2003 04:14:14 -0000 1.2
***************
*** 40,45 ****
private String name;
private String signature;
! private String assemblyName;
! private String className;
// Constructor.
--- 40,44 ----
private String name;
private String signature;
! private Type containingType;
// Constructor.
***************
*** 54,59 ****
name = info.GetString("Name");
signature = info.GetString("Signature");
! assemblyName = info.GetString("AssemblyName");
! className = info.GetString("ClassName");
}
--- 53,72 ----
name = info.GetString("Name");
signature = info.GetString("Signature");
! String assemblyName =
info.GetString("AssemblyName");
! String className = info.GetString("ClassName");
! if(assemblyName == null || className == null)
! {
! throw new SerializationException
! (_("Serialize_StateMissing"));
! }
! Assembly assembly =
FormatterServices.GetAssemblyByName
! (assemblyName);
! if(assembly == null)
! {
! throw new SerializationException
! (_("Serialize_StateMissing"));
! }
! containingType =
FormatterServices.GetTypeFromAssembly
! (assembly, className);
}
***************
*** 80,88 ****
// Implement the IObjectReference interface.
- [TODO]
public Object GetRealObject(StreamingContext context)
{
! // TODO
! return null;
}
--- 93,203 ----
// Implement the IObjectReference interface.
public Object GetRealObject(StreamingContext context)
{
! if(containingType == null || name == null ||
! memberType == (MemberTypes)0)
! {
! throw new SerializationException
! (_("Serialize_StateMissing"));
! }
! switch(memberType)
! {
! case MemberTypes.Constructor:
! {
! if(signature == null)
! {
! throw new
SerializationException
!
(_("Serialize_StateMissing"));
! }
! ConstructorInfo[] ctors;
! ctors =
containingType.GetConstructors
! (BindingFlags.Instance |
! BindingFlags.Static |
! BindingFlags.Public |
!
BindingFlags.NonPublic);
! foreach(ConstructorInfo ctor in
ctors)
! {
! if(ctor.ToString() ==
signature)
! {
! return ctor;
! }
! }
! }
! break;
!
! case MemberTypes.Event:
! {
! EventInfo eventInfo =
containingType.GetEvent
! (name,
BindingFlags.Instance |
!
BindingFlags.Static |
!
BindingFlags.Public |
!
BindingFlags.NonPublic);
! if(eventInfo != null)
! {
! return eventInfo;
! }
! }
! break;
!
! case MemberTypes.Field:
! {
! FieldInfo field =
containingType.GetField
! (name,
BindingFlags.Instance |
!
BindingFlags.Static |
!
BindingFlags.Public |
!
BindingFlags.NonPublic);
! if(field != null)
! {
! return field;
! }
! }
! break;
!
! case MemberTypes.Method:
! {
! if(signature == null)
! {
! throw new
SerializationException
!
(_("Serialize_StateMissing"));
! }
! MethodInfo[] methods;
! methods =
containingType.GetMethods
! (BindingFlags.Instance |
! BindingFlags.Static |
! BindingFlags.Public |
!
BindingFlags.NonPublic);
! foreach(MethodInfo method in
methods)
! {
! if(method.ToString() ==
signature)
! {
! return method;
! }
! }
! }
! break;
!
! case MemberTypes.Property:
! {
! PropertyInfo property =
containingType.GetProperty
! (name,
BindingFlags.Instance |
!
BindingFlags.Static |
!
BindingFlags.Public |
!
BindingFlags.NonPublic);
! if(property != null)
! {
! return property;
! }
! }
! break;
!
! default:
! {
! throw new ArgumentException
!
(_("Arg_InvalidMemberObject"));
! }
! // Not reached.
! }
! throw new SerializationException
! (_("Arg_InvalidMemberObject"));
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Reflection MemberInfoSerializationHolder.cs, 1.1, 1.2,
Rhys Weatherley <address@hidden> <=