IronPython'da oluşturulan bazı sınıfları devam ettirmek için nesne veritabanını kullanmak istiyorum. Veritabanı, .NET 2.0 için db4o'dur (bugün indirilmiştir). Kod şöyle görünür: Sınıf Person
standart .NET sınıf olmadığı içinIronPython'da oluşturulan nesneleri nesne nesnelerine nesne olarak depolamak için nasıl kullanılır
import clr
clr.AddReferenceToFileAndPath(r"C:\dev\Db4objects\db4o-7.12-net20\bin\net-2.0\Db4objects.Db4o.dll")
from Db4objects.Db4o import *
db = Db4oFactory.OpenFile(r'G:\IronPython\test\db4o\database.db')
class Person(object):
def __init__(self, name, age):
self.Name = name
self.Age = age
def __str__(self):
return 'Person: ' + self.Name + ' ' + str(self.Age)
p1 = Person('testp', 34)
db.Store(p1)
Ben db.Store(p1)
Unexpected char '$'
ThrowUncheckedException at offset 4 in file:line:column <filename unknown>:0:0
FatalShutdown at offset 136 in file:line:column <filename unknown>:0:0
AsTopLevelCall at offset 112 in file:line:column <filename unknown>:0:0
AsTopLevelStore at offset 34 in file:line:column <filename unknown>:0:0
StoreInternal at offset 69 in file:line:column <filename unknown>:0:0
Store at offset 66 in file:line:column <filename unknown>:0:0
Store at offset 12 in file:line:column <filename unknown>:0:0
Store at offset 15 in file:line:column <filename unknown>:0:0
v Microsoft.Scripting.Actions.Calls.MethodCandidate.Caller.CallWithInstance(Object[] args, Boolean& shouldOptimize)
v IronPython.Runtime.Types.BuiltinFunction.BuiltinMethodCaller`2.Call1(CallSite site, CodeContext context, TFuncType
func, T0 arg0)
v System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
v Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
v Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
v Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1)
v IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)
v IronPython.Compiler.PythonScriptCode.Run(Scope scope)
v IronPython.Hosting.PythonCommandLine.<>c__DisplayClass1.<RunOneInteraction>b__0()
Exception: Unexpected char '$'
CLR Exception:
Exception
:
Unexpected char '$'
Sorun IronPython ve tipi sistemiyle olduğundan şüpheleniyorsanız de istisna olsun. System.IO.FileInfo
'u kullanmaya çalıştım ve iyi çalıştı. IronPython'da bir sınıfın örneği olan bir nesneyi nasıl saklayabilirim?
ithalat cPickle db.Store (cPickle.dumps (p1)) sonra
ve cPickle.loads kullanmak (...) getirmek için nesneyi: Sen örneklerini devam etmek turşu kullanabilirsiniz
Bu sorunu yalnızca python, demir olmayan bir python kullanarak çoğaltabilir misiniz? –
.NET meclislerini python'a nasıl alacağımı bilmiyorum (bunun mümkün olmadığını düşündüm). Yani, şu andaki bilgilerimle çoğalamıyorum. – stej
Muhtemelen duymak istediğiniz şey değil, ancak C# modellerinizi tanımlayabilir ve bunları IronPython ortamınıza aktarabilirsiniz. Eğer bunu nasıl çözdüğünüzü bilmeye hevesli olacağım. – tarn