How to find out origin of unknown type

Viewed 42

I have a C# function that makes a call to an API. This function returns an untyped object because of reasons.

Now, what I want to do is to cast that object to its actual type. I know what the type is called, but that's about it. Specifically, I can't cast it because I do not know which class I have to import.

So, what I would like to do is this:

object drawing = DrawingSoapLoader.GetDrawing(ITEM_NUMBER, REVISION_CODE, DRAWING_TYPE);

if(drawing is CADDrawing){
    CADDrawing cadDrawing = (CADDrawing) drawing;
    [...]
}

...however, that does not work because the type CADDrawing is not recognized.

Currently, what I have working instead is this:

object drawing = DrawingSoapLoader.GetDrawing(ITEM_NUMBER, REVISION_CODE, DRAWING_TYPE);

Type type = drawing.GetType();

Assert.AreEqual("CADDrawing", type.Name);

By debugging this, I can see that the type is this:

Name = "CADDrawing"
FullName = "CADDrawing"
Assembly = {gd5rgwpt, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null}    System.Reflection.Assembly {System.Reflection.RuntimeAssembly}

I've also confirmed that the assembly code (here "gd5rgwpt") is different every time I run this.

I can find that .dll in my \AppData\Local\Temp folder, and I can even see that it has the CADDrawing type inside, and while I suppose I could just copy that .dll and manually add it to my project, somehow I don't think this is the right way to go about this.

Is there a better way to go about this?

Or is this just a case where it would be better to create a local CADDrawing class and then cast it to that?

0 Answers
Related